تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
التفريق بين الإتصال المباشر والغير مباشر ( المتصل و المنفصل)
#1
السلام عليكم

أصدقائي كتب الكود التالي ووضعته في الكلاس
Imports System.Data.OleDb
Public Class DBConnect
    ' Public Con As New OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;Data source = |DataDirectory|\stordb.accdb")
    Public ds As DataSet
    Public da As OleDbDataAdapter
    Public dv As DataView
    Public Cmd As OleDbCommand
    Public sql As String

    Sub FillDataSet(sql As String, TableName As String)
        ds = New DataSet
        da = New OleDbDataAdapter(sql, Con)
        da.Fill(ds, TableName)
        dv = New DataView(ds.Tables(TableName))
    End Sub
End Class
والكود التالي في الفورم

Public Class Form1
    Dim MyConnect As DBConnect
   
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        MyConnect.FillDataSet("SELECT * FROM Store", "Store")

        DataGridView1.DataSource = MyConnect.dv
    End Sub
End Class
الكود في الأصل كان يتعامل مع قواعد البيانات من نوع سكول ولاكن عدلته ليتعامل مع قواعد البيانات أكسس ولاكن يظهر لي خطأ لم أعرف سببه وهذا محتواه

An unhandled exception of type 'System.NullReferenceException' occurred in WindowsApplication19.exe

Additional information: Object reference not set to an instance of an object.
أرجو المساعدة لو سمحتم
الرد }}}
تم الشكر بواسطة:
#2
معنى الرساله انه ينقص كلمه new ضع  new فى التعريفات 



dim ds as new sataset و هكذا
الرد }}}
تم الشكر بواسطة: +yassen+ , +yassen+ , اسامه الهرماوي , elgokr
#3
ألف شكر أخي vb2010 لقد أصبت في إجابتك 

أخي كيف لك أن تفهم فحوى الخطأ

أخي لو سمحت مانوع هذا الإتصال ( أليس هوا من النوع المباشر ) أم أنا مخطئ
الرد }}}
تم الشكر بواسطة: اسامه الهرماوي
#4
(28-11-18, 06:42 PM)+yassen+ كتب :
ألف شكر أخي vb2010 لقد أصبت في إجابتك 

أخي كيف لك أن تفهم فحوى الخطأ

أخي لو سمحت مانوع هذا الإتصال ( أليس هوا من النوع المباشر ) أم أنا مخطئ

لا اخي هذا اتصال غير
مباشر فالاتصال المباشر
هو الاتصال بوسطة
الفيجول دون اي اكود.
وهذا الرابط يوضح كيفية
الاتصال المباشر.
https://youtu.be/NndueeFojwg
المبرمج لا يفكر في المشكلة بل في الحل!!
الرد }}}
تم الشكر بواسطة: +yassen+
#5
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------refrence يعنى نسخه يعنى نيو
الرد }}}
#6
أخي اسامه الهرماوي الذي أعرفه أن كلا النوعين من  الإتصال سواء مباشر أم غير مباشر يمكن كتبتهم بالكود ولاكن الإختلاف في كتابة الكود 
حسب ما أنا فاهم إن عند إستخدام DataTable يكون الإتصال غير مباشر أي أنك تستدعي الجدول كامل في الذاكرة تم تقوم بالتعديل عليه وحفظه أي إستيراد كامل سجلات الجدول دفعة واحدة

فهل من تعليق للإخوة لتوضيح أكثر
الرد }}}
#7
الفرق بين الاتصالين هو ان الاتصال المنفصل يستعمل الداتا ادابتر اما المتصل المباشر يستعمل الكوماند و فتح وغلق الاتصال كل شويه و هو ممل ارجو تقييمى
الرد }}}
تم الشكر بواسطة: اسامه الهرماوي
#8
(28-11-18, 07:16 PM)vb2010 كتب : الفرق بين الاتصالين هو ان الاتصال المنفصل يستعمل الداتا ادابتر اما المنفصل المباشر يستعمل الكوماند و فتح وغلق الاتصال كل شويه و هو ممل ارجو تقييمى

أعتقد والله أعلم أن كلامك صحيح وهذا الذي انا أعرفة  ... إذاً إتصالي كان من النوع الغير مباشر او المنفصل 


في إنتظار التوضيح أكثر من الإخوة
الرد }}}
تم الشكر بواسطة:
#9
الوضع المتصل يستخدم Command ويقرأ البيانات بواسطة DataReader
ويضل الإتصال مفتوح طوال فترة قراءة البيانات
كود :
' Connected mode الوضع المتصل

' Command يستخدم
' DataReader يبقى الإتصال مفتوح لحين الإنتهاء من قراءة البيانات بواسطة

Dim cmd As New OleDbCommand("SELECT * FROM [tb1]", cnn)

cnn.Open()

Dim reader As OleDbDataReader = cmd.ExecuteReader
While reader.Read
   MsgBox(reader.Item("Name"))
End While

cnn.Close()



الوضع المنفصل يستخدم DataAdapter ويقرأ البيانات كاملة ويضعها في جدول مؤقت DataTable
ويغلق الإتصال مباشرة بعد تعبئة الجدول المؤقت
كود :
' Disconnected mode الوضع المنفصل

' DataAdapter يستخدم
' DataTable يغلق الإتصال بعد شحن البيانات في الجدول المؤقت

Dim da As New OleDbDataAdapter("SELECT * FROM [tb1]", cnn)

Dim dt As New DataTable

da.Fill(dt)

For i = 0 To dt.Rows.Count - 1
   MsgBox(dt.Rows(i).Item("Name"))
Next

منقول من أحد الدروس القديمة
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , ابراهيم ايبو
#10
(28-11-18, 08:17 PM)rmnr كتب : الوضع المتصل يستخدم Command ويقرأ البيانات بواسطة DataReader
ويضل الإتصال مفتوح طوال فترة قراءة البيانات
كود :
' Connected mode الوضع المتصل

' Command يستخدم
' DataReader يبقى الإتصال مفتوح لحين الإنتهاء من قراءة البيانات بواسطة

Dim cmd As New OleDbCommand("SELECT * FROM [tb1]", cnn)

cnn.Open()

Dim reader As OleDbDataReader = cmd.ExecuteReader
While reader.Read
   MsgBox(reader.Item("Name"))
End While

cnn.Close()



الوضع المنفصل يستخدم DataAdapter ويقرأ البيانات كاملة ويضعها في جدول مؤقت DataTable
ويغلق الإتصال مباشرة بعد تعبئة الجدول المؤقت
كود :
' Disconnected mode الوضع المنفصل

' DataAdapter يستخدم
' DataTable يغلق الإتصال بعد شحن البيانات في الجدول المؤقت

Dim da As New OleDbDataAdapter("SELECT * FROM [tb1]", cnn)

Dim dt As New DataTable

da.Fill(dt)

For i = 0 To dt.Rows.Count - 1
   MsgBox(dt.Rows(i).Item("Name"))
Next

منقول من أحد الدروس القديمة

إذا ما نوع  الإتصال المستخدم لدي
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  معرفة رصيدي للهاتف النقال المتصل بالكمبيوتر وارسال رسائل نصية منه AHMED213 1 151 03-04-24, 08:08 AM
آخر رد: sdz
  كيف يتم تعبئة قريد فيو بدون قاعدة بيانات بشكل مباشر؟ nowiglah 1 384 01-12-23, 10:57 PM
آخر رد: Taha Okla
  طباعة التقرير بامر مباشر حماده ممدوح البحيرى 3 622 26-03-23, 12:18 PM
آخر رد: sanyor77
  رابط مباشر ل كريستال ريبورت يعمل مع فيحوال 2019 atefkhalf2004 1 1,291 02-01-22, 07:50 PM
آخر رد: aljzazy
  [SQL] مشكلة بطئ سرعة البرنامج المتصل بقاعدة بيانات على النت mmaalmesry 4 2,103 24-11-21, 12:23 PM
آخر رد: mmaalmesry
  [VB.NET] التفريق بين الحروف الكبيرة و الصغيرة في user an mot de passe hammadi 12 2,489 01-08-21, 10:18 PM
آخر رد: hammadi
  جمل الحفظ الخاصة بال commandbuilder لا تعمل الوضع المنفصل hany nabil3 1 925 17-05-21, 10:46 PM
آخر رد: عبد العزيز البسكري
  جلب الرابط المباشر من هنا ابو روضة 7 1,912 24-03-21, 01:33 AM
آخر رد: ابو روضة
  [VB.NET] جملة الإتصال بالسيرفر على الشبكة المحلية ZaerAllail 3 1,315 08-03-21, 06:02 AM
آخر رد: atefkhalf2004
  استخراج البث مباشر crazykinko 6 1,835 03-12-20, 12:51 AM
آخر رد: crazykinko

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


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