منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] الربط ب ADODB في الفيجوال دوت نت -ممكن شيئ ؟ - - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] الربط ب ADODB في الفيجوال دوت نت -ممكن شيئ ؟ - (/showthread.php?tid=11149)



الربط ب ADODB في الفيجوال دوت نت -ممكن شيئ ؟ - - sniperjawadino - 14-01-15

السلام عليكم

مرحبا إخواني

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

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

DataGridView1.DataSource = rs





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


RE: الربط ب ADODB في الفيجوال دوت نت -ممكن شيئ ؟ - - sami2015 - 14-01-15


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




RE: الربط ب ADODB في الفيجوال دوت نت -ممكن شيئ ؟ - - sniperjawadino - 15-01-15

السلام عليكم

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

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

وأشكرك كثيير


RE: الربط ب ADODB في الفيجوال دوت نت -ممكن شيئ ؟ - - kslawy - 15-01-15

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

احسن حاجة تعملها تبحث عن دروس Linq to sql في اليوتيوب (ابحث باللغة الانجليزية تجد الكثير) ستحس عندها بسهولتها. وتغنيك عن التحويل والتبديل كما في ADODB


RE: الربط ب ADODB في الفيجوال دوت نت -ممكن شيئ ؟ - - sniperjawadino - 16-01-15

أخي kslawy شكرا على نصيحتك , سأبحث عن هذه الدروس