الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة فى حفظ سجل بالادو دوت نت مع كائن Datarow

بدأه usama said في 9 يونيو 2009 · 4 رد · 1,065 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مشكلة فى حفظ سجل بالادو دوت نت مع كائن datarow

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

Object reference not set to an instance of an object

رغم البحث الطويل لم أجد حلا

ها هو الكود

Dim cmd1 As New OleDb.OleDbCommand

Dim mydataset1 As New DataSet

Dim MyAdapter1 As New OleDb.OleDbDataAdapter

Dim dt1 As New DataTable

Dim dr1 As DataRow

'------------------------------

cmd1.Connection = cn

cmd1.CommandType = CommandType.Text

cmd1.CommandText = "select * from table2"

mydataset1.Clear()

MyAdapter1.SelectCommand = cmd1

MyAdapter1.Fill(mydataset1, "table2")

dt1 = mydataset.Tables("table2")

''اضافة سجل بالغير متصل

dr1 = mydataset.Tables("table2").NewRow

dr1 = Nothing

dr1("s11") = T11.Text

dr1("s22") = Tt.Text

dr1("s33") = t33.Text

dr1("s44") = T44.Text

dr1("s55") = T55.Text

dr1("s66") = T66.Text

dr1("s77") = T77.Text

dr1("s88") = t88.Text

dt1.Rows.Add(dr1)

MsgBox("ok")

ارجو افادتى لماذا هذا الخطأ واللهم اجزى خيرا من افادنى

تم تعديل هذه المشاركة بواسطة usama said في 9 يونيو 2009 في 17:53

#2

السلام عليكــم ورحمـة الله وبركاتــه ،،

أولا ً : لن تحتاج إلى استخدام cmd استخدم مباشرة بالطريقة التالية :

adp = New OleDbDataAdapter("Select * From " & mTable & " Where OffCode='" & txtOffCode.Text & "' ", cnnS)

ثم تحتاج في نهاية الاجراء الكائن الذي يقوم بتحديث البيانات من الوضع المنفصل إلى الوضع المتصل بالطريقة التالية :

Dim cb As New OleDbCommandBuilder(adp)

adp.Update(dt1)

مع العلم أنه يجب أن يكون في الجدول الذي تريد تحديث أو إضافة البيانات إليه حقل مفهرس PrimaryKey

#3

جزاك الله خيرا أخى الكريم على الرد لكن هذا لم يحل المشكلة فالمشكلة ليست فى كيف يستلم الادابتر البيانات وانما فى اضافة سجل جديد فى الداتا تابل فى الداتا ست باستخدام الداتا رو فى الذاكرة وعملية تحديث البيانات من الذاكرة للقاعدة ليست ايضا المشكلة

ارجو توضيح لماذا يعطى الداتا رو هذا الخطأ رغم انه من المعروف ان اخذ نسخة من لا نستخدم new

#4

السلام عليكــم ورحمـة الله وبركاتــه ،،

المشكلة والله أعلم فى تعريف dataRow

لازم تحط كلمة new

dim dr as new datarow

شكرا

#5
md_mostafa كتب:
السلام عليكــم ورحمـة الله وبركاتــه ،،

المشكلة والله أعلم فى تعريف dataRow

لازم تحط كلمة new

dim dr as new datarow

شكرا

الـDataRow ليس له constructor لذا لا يمكن تعريفه عن طريق new

الخطأ هنا:

dr1 = mydataset.Tables("table2").NewRow


dr1 = Nothing

في السطر الأول قمت بتعريف dr1 بانه صف في mydataset.Tables("table2")

لكنك في السطر الثاني قمت بإزالة هذا التعريف.

لذا عندما حاولت استخدام dr1 في السطر التالي يعطيك خطأ لأن dr1 لم يعد له تعريف.

أزل السطر الثاني فلا داعي له.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…