مقاله - کار با ADOX - چگونگی ایجاد بانک اطلاعاتی Access
با سلام .
به دلیل اینکه ADO و ADO.Net امکان ایجاد بانکهای اطلاعاتی Access و تغییر در ساختار آنها را به ما نمیدهند به همین دلیل باید از کتابخانه ADOX استفاده نماییم .
قبل از شروع کار مراحل زیر را دنبال نمایید :
1 – یک WindowsApplication جدید ایجاد نمایید .
2 – بر روی پروژه خود راست کلیک کرده گزینه Add Reference را انتخاب نمایید . در پنجره ظاهر شده وارد برگه COM شده و بر روی گزینه ADO Ext. 2.7 for DDL and Security دوبار کلیک کرده و سپس دکمه OK را بزنید تا کتابخانه ADOX به پروژه شما اضافه گردد .
مرحله اول : ایجاد بانک اطلاعاتی Access
'A'
Dim ConnStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\NewMDB.mdb;" & _
"Jet OLEDB:Engine Type=5"
'B
Dim NewDatabase As New Catalog
'C
NewDatabase.Create(ConnStr)
'D
NewDatabase.let_ActiveConnection(ConnStr)
توضیحات :
A.ابتدا متغیری به نام Connstr تعریف کرده و مقدار آن را برابر ConnectionString دیتابیسی که میخواهیم ایجاد کنیم ، قرار میدهیم .
B.برای ایجاد یک دیتابیس ابتدا یک نمونه از شی ء ADOX.Catalog ایجاد مینماییم .
C.با استفاده از تابع Create و متغیر Connstr بانک مورد نظر را ایجاد مینماییم .
D.توسط متد let_ActiveConnection با بانک اطلاعاتی که ایجاد کردیم ارتباط برقرار میکنیم .
مرحله دوم : ایجاد جدول
'A
Dim PersonalTB As New ADOX.Table
'B
PersonalTB.Name = "Personal"
'C
PersonalTB.Columns.Append("FName", DataTypeEnum.adVarWChar, 20)
PersonalTB.Columns.Append("LName", DataTypeEnum.adVarWChar, 20)
PersonalTB.Columns.Append("Age", DataTypeEnum.adInteger, 2)
PersonalTB.Columns.Append("PersonalID", DataTypeEnum.adInteger, 5)
'D
PersonalTB.Keys.Append("PerSonalID", KeyTypeEnum.adKeyPrimary, "PersonalID")
'E
NewDatabase.Tables.Append(PersonalTB)
A.ابتدا یک نمونه از شی ء ADOX.Table ایجاد مینماییم .
B.نام جدول را توسط پروپرتی Name تنظیم مینماییم .
C.در این مرحله میبایست فیلدهای مورد نظر را به جدول اضافه نماییم : برای اینکار باید از متد Append شی ء Columns استفاده نماییم که به صورت زیر تعریف میشود :
Public Overridable Sub Append(ByVal Item As Object, Optional ByVal Type As ADOX.DataTypeEnum = 202, Optional ByVal DefinedSize As Integer = 0)
- توسط آرگومان Item نام فیلد را توسط یک رشته تنظیم مینماییم .
- توسط آرگومان Type نوع فیلد را توسط یکی از ثابتهای شمارشی OX.DataTypeEnumتنظیم مینماییم .
- توسط آرگومان DefineSize اندازه فیلد را به مقدار مورد نظر محدود مینماییم .
D.سپس توسط متد Append مربوط به شی ء Keys یک کلید اصلی بر روی فیلد PersonalID ایجاد مینماییم .
متد Keys.Append به صورت زیر تعریف میشود :
Public Overridable Sub Append(ByVal Item As Object, Optional ByVal Type As ADOX.KeyTypeEnum = 1, Optional ByVal Column As Object = Nothing, Optional ByVal RelatedTable As String = "", Optional ByVal RelatedColumn As String = "")
- توسط آرگومان Column نام فیلدی را که میخواهیم کلید اصلی بر روی آن قرار گیرد را توسط رشته تعیین مینماییم .
E.در این مرحله توسط متد Append مربوط به شی ء Tables جدول مورد نظر را به بانک اضافه مینماییم .
نقل قول: مقاله - کار با ADOX - چگونگی ایجاد بانک اطلاعاتی Access
سلام
از راهنمايي خوبي كه براي ساختن فايل اكسس در وي بي گذاشته بودي خيلي ممنونم . خيلي خوب وكامله . ولي من 2 تا سوال دارم كه مي خواستم از شما بپرسم.
1- حالا كه بانك و table رو ايجاد كرديم چطوري داخل يك for بتوانيم به آن ديتا اضافه كنيم؟
2- مي شود بانك را طوري تعريف كنيم كه اگر در مسيرداده شده قبلاً فايلي وجودداشت روي آن اضافه كنه و پيام خطا نده؟
باز هم از راهنمايي شما ممنونم.
نقل قول: مقاله - کار با ADOX - چگونگی ایجاد بانک اطلاعاتی Access
سلام .................................................. ...........كسي از دوستان نيست كه بتونه راهنمايي كنه؟
نقل قول: مقاله - کار با ADOX - چگونگی ایجاد بانک اطلاعاتی Access
با سلام
ضمن تشکر از شما
خیلی عالی بود
بی زحمت کد ها رو با زبان شیرین #C هم بزارید
با تشکر
نقل قول: مقاله - کار با ADOX - چگونگی ایجاد بانک اطلاعاتی Access
این روش جالب بود ولی خیلی ضعیف بود
من یه جور دیگه بانک رو میسازم
توی روش شما من فیلد از نوع اتونامبر پیدا نکردم
من سه تا فانکشن میزارم که
اولی بانک خالی رو میسازه
دومی جدول با کلید اصلی اصلی میسازه
سومی جدول با کلید اصلی و کلید فرعی میسازهaval mikham bank ro besazam
Function DBCreate(ByVal DBSource As String) As Boolean
Dim DB As New ADOX.Catalog
DB.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBSource)
Return True
End Function
intori estefade mishe : DBCreate(FileAddress.mdb) | Behamin Sadegi shoma ye file mdb e khali sakhtin
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
hala ba in fanction ye table be esme persons behesh ezafe mikonim
Function tblPersons(ByVal DBSource As String) As Boolean
Dim Cn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLED B.4.0;Data Source=" & DBSource)
Dim CMDtblPersons As OleDb.OleDbCommand = New OleDb.OleDbCommand()
CMDtblPersons.Connection = Cn
CMDtblPersons.CommandText = "CREATE TABLE Persons(PID AUTOINCREMENT NOT NULL,FirstName TEXT(50),LastName TEXT(50),CONSTRAINT Persons PRIMARY KEY(pID))"
Cn.Open()
CMDtblPersons.ExecuteNonQuery()
Cn.Close()
Cn.Dispose()
Cn = Nothing
Return True
End Function
intori estefade mishe : tblPersons(FileAddress.mdb) | Behamin Sadegi shoma ye jadval ba 3ta fild sakhtin
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
hala jadvale dovomo misazim ke ba jadvale aval ye realation e yek be chand dare
Function tblPerDets(ByVal DBSource As String) As Boolean
Dim Cn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLED B.4.0;Data Source=" & DBSource)
Dim cmdPd As New OleDb.OleDbCommand("CREATE TABLE PerDets(pdID AUTOINCREMENT NOT NULL,pID INT NOT NULL,dTitle TEXT(50),CONSTRAINT PerDets_FK FOREIGN KEY (pID) REFERENCES Persons (pID) ,CONSTRAINT PerDets PRIMARY KEY(pdID))", Cn)
Cn.Open()
cmdPd.ExecuteNonQuery()
Cn.Close()
Cn.Dispose()
Cn = Nothing
Return True
End Function
be ravesh e ghabli estefade mishe
fanction e dovom o sevom ye farghe koochooloo dare yani be do ravesh mishe sakht
motmaenam khodetoon baladin
movafagh bashin