منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : الربط ب ADODB في الفيجوال دوت نت -ممكن شيئ ؟ -
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

مرحبا إخواني

بعد إنتقالي من الفيجوال 6 إلى الدوت نت
اشتقت لطريقة ربط قواعد البيانات القديمة
الشيئ الذي جعلني أبحث عن دورة الربط ب ADODB
و الحمد لله كل شيئ تمام

فقط ظهور البيانات في الداتاغريد لم يشتغل بالطريقة العادية
فالداتاغريد تبقى فارغة حتى بعد أن قمت بوضع هذا الكود

DataGridView1.DataSource = rs





أين الخطأ إخواني جزاكم الله خيرا

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

   rs.CursorLocation = ADODB.CursorLocationEnum.adUseClient

   cn.Open("provider = Microsoft.ACE.OLEDB.12.0;" & "Data Source =" & Application.StartupPath & "\bd.mdb")

   rs.Open("select * from Table1", cn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)

   If cn.State = 1 Then MsgBox("connet")

   DataGridView1.DataSource = RS2DT(rs)

End Sub

Private Function RS2DT(ByVal rs As ADODB.Recordset) As DataTable
Dim dt As New DataTable
If rs.RecordCount > 0 Then
On Error Resume Next
For Each f As ADODB.Field In rs.Fields
dt.Columns.Add(f.Name, rs.Fields(f.Name).Value.GetType)
Next
For i = 1 To rs.RecordCount
Dim dr As DataRow
dr = dt.NewRow()
dt.Rows.Add(dr)
Next
For i = 0 To dt.Rows.Count - 1
For Each f As ADODB.Field In rs.Fields
dt.Rows(i)(f.Name) = rs.Fields(f.Name).Value
Next
rs.MoveNext()
Next
End If
Return dt
End Function



Private conStr As String = "provider = Microsoft.ACE.OLEDB.12.0;" & "Data Source =" & Application.StartupPath & "\bd.mdb;"

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
   Dim sqlStr As String = "select * from Table1"
   Dim dpt As New OleDb.OleDbDataAdapter(sqlStr, conStr)
   Dim dt As New DataTable
   dpt.Fill(dt)
   DataGridView1.DataSource = dt
End Sub

السلام عليكم

أخي sami2015 . كود متعوب عليه أخي . وأقل شيئ هو شكرك وتقييمك
جزاك الله خيرا

بعد تمعني في الكود استفدت أنه يقوم بملأ الداتاقريد وهذا شيئ جميل استفدت منه
لكن ألا يمكن أخي أر أربط الداتاغريد بالقاعدة حتى يتسنى لي الإستفادة من خصائصها

وأشكرك كثيير
يمكنك أن تلاحظ من خلال كود تحويل البيانات اللي وضعه لك الأخ sami2015 أن الداتا غريد لا تقبل مصدر بيانات من نوع RecordSet
لأنها من جيل الدوت نت فقط

احسن حاجة تعملها تبحث عن دروس Linq to sql في اليوتيوب (ابحث باللغة الانجليزية تجد الكثير) ستحس عندها بسهولتها. وتغنيك عن التحويل والتبديل كما في ADODB
أخي kslawy شكرا على نصيحتك , سأبحث عن هذه الدروس