PDA

View Full Version : تشخيص اينكه آيا جدول مورد نظر در ديتابيس اكسس وجود دارد يا حير؟



shahryari
یک شنبه 22 بهمن 1391, 13:14 عصر
چگونه ميتوان تشخيص داد يك جدول با نام مثلا "MyTable" در ديتا بيس اكسس وجود دارد يا نه؟؟؟
بدون استفاده از رفرنس ADOX يا ADODB
-------------------------------------------------
نكته:
با استفاده از كد زير ميتونم تمام جدول ها رو در ليست باكس ادد كنم
و سپس با استفاده از حلقه نام مورد نظر را در بين آيتم هاي ليست باكس مقايسه كنم كه در درصورت وجود داشتن ، مقداري را برگرداند...
اما مشكل اين است ليست باكس نميخوام استفاده كنم......
كد ليست كردن جداول ديتابيس اكسس

Public Sub GetAllTableNames(ByVal ConnectionString As String, ByVal TablesListBox As ListBox)
TablesListBox.DataSource = Nothing
Using cn As New OleDbConnection(ConnectionString)
cn.Open()
Dim DatabaseSchema As New DataTable
DatabaseSchema = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
New Object() {Nothing, Nothing, Nothing, "TABLE"})
TablesListBox.DisplayMember = "TABLE_NAME"
TablesListBox.DataSource = DatabaseSchema
End Using
End Sub

samirataheri
یک شنبه 22 بهمن 1391, 13:33 عصر
سلام عالی بود.

shahryari
یک شنبه 22 بهمن 1391, 13:34 عصر
سلام عالی بود.
بنده سوال پرسيدم .....
چي عالي بود؟؟ :متفکر:

فرید نجفلو
یک شنبه 22 بهمن 1391, 13:55 عصر
سلام
من کد شما رو تست نکردم ولی خب شما می تونید همون DataTable رو بررسی کنید!


For Each aRow As DataRow In DatabaseSchema
If Cstr(aRow("TABLE_NAME")).ToLower="table_1" Then
'????
ExitFor
EndIf
Next

shahryari
یک شنبه 22 بهمن 1391, 17:19 عصر
سلام
من کد شما رو تست نکردم ولی خب شما می تونید همون DataTable رو بررسی کنید!


For Each aRow As DataRow In DatabaseSchema
If Cstr(aRow("TABLE_NAME")).ToLower="table_1" Then
'????
ExitFor
EndIf
Next

با تشكر از حسن توجه
متاسفانه جواب نميده ..........
--------------------------------------
ميخوام برنامه بررسي كنه اگر يك جدول با نام مشخص در پايگاه داده وجود نداشته باشه ، برنامه اونو ايجاد كنه !!!!!
كد ايجاد كردن تيبل را با نام و مشخصات و فيلد هاش نوشتم ......
اما در تابع Table Exist موندم....:متفکر:

shahryari
یک شنبه 22 بهمن 1391, 17:41 عصر
اوركا ... اوركا
بالاخره يافتم
Public Function Table_Exist(ByVal ConnectionString As String, ByVal TableName As String) As Boolean

Dim dbConn As New OleDbConnection(ConnectionString)
dbConn.Open()
Dim restrictions(3) As String
restrictions(2) = TableName
Dim dbTbl As DataTable = dbConn.GetSchema("Tables", restrictions)

If dbTbl.Rows.Count = 0 Then
' وجود ندارد
Table_Exist = False
Else
' وجود دارد
Table_Exist = True
End If

dbTbl.Dispose()
dbConn.Close()
dbConn.Dispose()
End Function
اين تابع بررسي ميكند كه ايا تيبل مورد نظر در ديتابيس وجود دارد يا خير
دوتا آرگومان داره
1- كانكشناسترينگ
2- نام جدول
مقدار برگشتي هم بولين
--------------------------------------
موفق و مويد باشيد