تقييم الموضوع :
  • 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

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

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  من فظلكم رابط تحميل مباشر لبرنامج visual studio 2017 sofiane-phy 13 1,196 08-08-20, 12:43 PM
آخر رد: sofiane-phy
  استفسار حول الوضع المتصل والمنفصل في ربط SQL مع VB.Net biloo20 3 4,339 05-03-20, 10:24 PM
آخر رد: AhmedSuror
  برنامج عياده طبيه : الربط المتصل أم المنفصل أفضل morkoskhalaf 7 852 02-03-20, 02:49 AM
آخر رد: alsalamoni
Rainbow [VB.NET] الإتصال بقاعدة بيانات على النت بواسطة تطبيق فجول بيسك علي إبراهيم الحاج علي 4 882 15-10-19, 05:15 PM
آخر رد: علي إبراهيم الحاج علي
  [VB.NET] UPDATE في الوضع المتصل sniperjawadino 6 702 09-08-19, 01:27 PM
آخر رد: asemshahen5
Rainbow [نقاش] التفريق بين الريجستري والمستخدم! DK-x 1 2,024 14-04-19, 01:24 PM
آخر رد: Mohamed20
  الإتصال بقواعد البيانات من نوع أكسس عن طريق الكلاس sads 11 2,028 25-10-18, 10:36 PM
آخر رد: sads
  مساعدة فى برنامج البث مباشر Mohamed Magdy 0 329 22-10-18, 02:55 PM
آخر رد: Mohamed Magdy
  كيفية اظافة بث مباشر من خلال youtube hamadz 0 530 21-10-18, 09:53 PM
آخر رد: hamadz
  [VB.NET] استفسار :- بخصوص التفريق بين الحروف الكبيره والصغيره dubai.eig 2 921 01-10-18, 10:08 AM
آخر رد: dubai.eig

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


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