تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ما هو كود معرفة نوع البيانات من اكسس؟
#1
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() {NothingNothingtbNothing})
 
     If dt.Rows.Count 0 Then
          MsgBox
(" لا توجد حقول!"MsgBoxStyle.Exclamation"")
 
         Exit Sub
      End 
If
 
     For i As Integer 0 To dt.Rows.Count 1
          dgvcols
.Rows.Add(dt.Rows(i).Item("Column_Name"), dt.Rows(i).Item("Data_Type").ToString)
 
     Next
  End Sub 
السابق كما ترون يجلب اسماء الاعمدة من جدول محدد ونوع البيانات لكن الاخيرة تاتي ارقام فكيف الى حلها؟
شكر الله لكم
الرد }}}
تم الشكر بواسطة:
#2
(09-05-24, 08:12 PM)justforit كتب :
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() {NothingNothingtbNothing})
 
     If dt.Rows.Count 0 Then
          MsgBox
(" لا توجد حقول!"MsgBoxStyle.Exclamation"")
 
         Exit Sub
      End 
If
 
     For i As Integer 0 To dt.Rows.Count 1
          dgvcols
.Rows.Add(dt.Rows(i).Item("Column_Name"), dt.Rows(i).Item("Data_Type").ToString)
 
     Next
  End Sub 
السابق كما ترون يجلب اسماء الاعمدة من جدول محدد ونوع البيانات لكن الاخيرة تاتي ارقام فكيف الى حلها؟
شكر الله لكم

dgvcols.Rows.Add(dt.Rows(i).Item("Column_Name"), [Enum].GetName(GetType(OleDbType), dt.Rows(i).Item("Data_Type")))
الرد }}}
تم الشكر بواسطة: Taha Okla , justforit
#3
3sem
[quote pid='197333' dateline='1715327697']
(09-05-24, 08:12 PM)justforit كتب :
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() {NothingNothingtbNothing})
 
     If dt.Rows.Count 0 Then
          MsgBox
(" لا توجد حقول!"MsgBoxStyle.Exclamation"")
 
         Exit Sub
      End 
If
 
     For i As Integer 0 To dt.Rows.Count 1
          dgvcols
.Rows.Add(dt.Rows(i).Item("Column_Name"), dt.Rows(i).Item("Data_Type").ToString)
 
     Next
  End Sub 
السابق كما ترون يجلب اسماء الاعمدة من جدول محدد ونوع البيانات لكن الاخيرة تاتي ارقام فكيف الى حلها؟
شكر الله لكم

dgvcols.Rows.Add(dt.Rows(i).Item("Column_Name"), [Enum].GetName(GetType(OleDbType), dt.Rows(i).Item("Data_Type")))
[/quote]

جربت كود شبيه به و جربته ايضا لكنه لا يعطي نفس النتيجة اللتي تظهر بالصورة و لم استطع فتح المرفق.
الرد }}}
تم الشكر بواسطة:
#4
توصلت الى قناعة وهي اني استخدم كود جلب اسماء الجداول من الاكواد التي تستخدم الـ GetOleDbSchema اما الاعمدة او الحقول فاكتفي باستخدام الكود المعتاد:
PHP كود :
Public Function getcols(cn As OleDbConnectiontb As String) As DataTable
     
If cn.State ConnectionState.Closed Then cn.Open()
 
    adb.Clear()
 
    adb.Columns.Clear()
 
    adb.Rows.Clear()
 
    Using cm As New OleDbCommand(""cn)
 
        cm.CommandText "select top 1 * from " tb
         adb
.Load(cm.ExecuteReader)
 
    End Using
     
Return adb
 End 
Function 
الجدول يحتوي فقط على صف واحد واللذي يهمنا الان اسماء الاعمدة ونوع بياناتها بالكود التالي:
PHP كود :
           Dim dt As New DataTable
            dt 
getcols(conListBox1.Text)
 
           ListBox2.Items.Clear()
 
           For Each dc As DataColumn In dt.Columns
                ListBox2
.Items.Add(dc.ColumnName)
 
               txtcode.AppendText(dc.ColumnName vbTab dc.DataType.Name vbNewLine)
 
           Next 
الرد }}}
تم الشكر بواسطة:
#5
لتصحيح الكود الخاص بك والذي يستخدم 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() {NothingNothingtbNothing})

 
   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(columnNamedataTypeName)
 
   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.
الرد }}}
تم الشكر بواسطة: justforit , مصمم هاوي , مصمم هاوي
#6
ماشاء الله تبارك الله
هذا الفهم الجيد اللذي اتمنى ان يكون عنديSmile
لقد لجات قبل ان ارى مشاركتك هذه الى استعراض كافة محتويات الاسكيما بعد اسناد جدول اليها ورايت الخصائص اللتي كنت اتمنى ان اعرفها.
الرد }}}
تم الشكر بواسطة: مصمم هاوي , غزة العزة
#7
منْ قالَ أن العربَ ليسوا مبدعين فقد أخطأ
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: غزة العزة


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] حول مشكلة توافق نوع البيانات عند الاستعلام في اكسل justforit 4 170 منذ 4 ساعة مضت
آخر رد: justforit
  استعلام من عدة جداول لقاعدة بيانات اكسس Adel27213 1 790 07-11-23, 08:27 AM
آخر رد: justforit
  [سؤال] عدم إظهار الصور مع النص فى Listview من قاعدة البيانات alims 2 1,608 27-08-23, 12:22 PM
آخر رد: رضوان الجماعي
  استفسار عن تخزين الوقت في قاعدة البيانات strongriseman 2 1,148 22-04-22, 07:27 PM
آخر رد: strongriseman
  [سؤال] مشكلة فى عرض الصورة من ادخل قاعدة البيانات alims 2 1,301 17-11-21, 10:09 AM
آخر رد: سعود
  كيف اتجنب أخطاء ارسال قيم فارغة الى حقول رقمية في اكسس بسام محمدغانم 2 1,155 09-11-21, 02:09 AM
آخر رد: Anas Mahmoud
  استعلام يرجع اسماء الاعمدة و نوع البيانات في جدول معين بسام محمدغانم 0 979 23-10-21, 01:43 AM
آخر رد: بسام محمدغانم
  كيف افتح قاعة بيانات اكسس بسام محمدغانم 1 1,425 04-10-21, 02:52 AM
آخر رد: اسلام الكبابى
  الحفظ فى قاعدة البيانات اسلام الكبابى 10 2,387 06-09-21, 06:52 PM
آخر رد: اسلام الكبابى
  طريقة أضافة اكثر من سيرفر على نفس قاعدة البيانات alim54 0 1,157 20-06-21, 11:20 PM
آخر رد: alim54

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم