لتصحيح الكود الخاص بك والذي يستخدم ADO.NET للحصول على نوع البيانات من حقول جدول في قاعدة بيانات Access، يمكن استخدام الكود التالي. الكود يقوم بقراءة أسماء الحقول وأنواع البيانات من الجدول المحدد وعرضها في DataGridView.
PHP كود :
Private Sub get_Cols(tb As String)
dgvcols.Rows.Clear()
If con.State = ConnectionState.Closed Then con.Open()
Dim dt As DataTable = con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, New Object() {Nothing, Nothing, tb, Nothing})
If dt.Rows.Count = 0 Then
MsgBox("لا توجد حقول!", MsgBoxStyle.Exclamation, "")
Exit Sub
End If
For i As Integer = 0 To dt.Rows.Count - 1
Dim columnName As String = dt.Rows(i).Item("COLUMN_NAME").ToString()
Dim dataType As Integer = Convert.ToInt32(dt.Rows(i).Item("DATA_TYPE"))
Dim dataTypeName As String = GetDataTypeName(dataType)
dgvcols.Rows.Add(columnName, dataTypeName)
Next
con.Close()
End Sub
Private Function GetDataTypeName(dataType As Integer) As String
Select Case dataType
Case 3
Return "Long Integer"
Case 4
Return "Single"
Case 5
Return "Double"
Case 6
Return "Currency"
Case 7
Return "Date/Time"
Case 11
Return "Boolean"
Case 17
Return "Byte"
Case 72
Return "GUID"
Case 130
Return "Text"
Case 131
Return "Decimal"
Case Else
Return "Other"
End Select
End Function
الكود أعلاه يقوم بالآتي:
يفتح الاتصال بقاعدة البيانات إذا كان مغلقًا.
يستخدم GetOleDbSchemaTable للحصول على بيانات الأعمدة من الجدول المحدد.
يتحقق مما إذا كان الجدول يحتوي على حقول أم لا.
يستعرض الحقول ويضيف اسم الحقل ونوع البيانات إلى DataGridView.
يغلق الاتصال بقاعدة البيانات.
GetDataTypeName هي وظيفة لتحويل نوع البيانات الرقمي إلى اسم نوع البيانات.
تأكد من أن dgvcols هي DataGridView موجودة في النموذج الخاص بك وأن الاتصال (con) مضبوط بشكل صحيح للاتصال بقاعدة بيانات Access.