تقييم الموضوع :
  • 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 يعنى نسخه يعنى نيو
الرد
تم الشكر بواسطة: +yassen+
#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

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

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الإتصال بقواعد البيانات من نوع أكسس عن طريق الكلاس sads 11 400 25-10-18, 10:36 PM
آخر رد: sads
  كيفية اظافة بث مباشر من خلال youtube hamadz 0 68 21-10-18, 09:53 PM
آخر رد: hamadz
  [VB.NET] استفسار :- بخصوص التفريق بين الحروف الكبيره والصغيره dubai.eig 2 113 01-10-18, 10:08 AM
آخر رد: dubai.eig
  محتاج لنك فيجول بيسك 2013 رابط مباشر naderalkeng54 4 171 21-09-18, 11:08 PM
آخر رد: essawq
  تعبئة الداتا جريد من الجدول ( بالوضع المنفصل ) Abdelazez.Ahmad 13 1,090 06-09-18, 09:21 PM
آخر رد: asemshahen5
  مشكلة في الإتصال بقاعدة الAccess ارجوكم مساعدة فراس صلاح 0 233 20-04-18, 05:18 PM
آخر رد: فراس صلاح
  [VB.NET] كيفية حفظ ملف التسجيل الصوتي الي رابط مباشر e-coder 3 260 06-04-18, 02:55 PM
آخر رد: e-coder
  [سؤال] انشاء تقرير مباشر من داتا جريد فيو العنابي 1 411 21-01-18, 02:32 PM
آخر رد: khodor1985
  التّرقيم التّلقائي الفوري المباشر عبد العزيز البسكري 4 266 20-01-18, 11:07 PM
آخر رد: عبد العزيز البسكري
  تخزين مباشر بالداتا جريد alma_fandi 4 389 11-01-18, 04:13 PM
آخر رد: عبدالله الدوسري

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


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