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

تحديث قاعدة البيانات

مغلق
بدأه hazzoom في 30 يوليو 2005 · 10 رد · 742 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أريد بعد التعامل مع جدول معين في قاعدة البيانات تطبيق التحديث علي القاعدة الأصليه ولكن لا يتم معي

علما بأني قمت بانشاء جدول في قاعدة northwind باسم hazemo و يحتوي علي عمودين fn,ln :

Dim constr As String = "Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=."
Dim mycon As New SqlConnection(constr)
Dim mycom As New SqlCommand()
Dim myset As New DataSet()
Dim myadpt As New SqlDataAdapter()

mycom.CommandText = "select * from hazemo"
mycom.Connection = mycon
myadpt.SelectCommand = mycom
myadpt.Fill(myset, "hazemo")

mycom.CommandText = "INSERT INTO hazemo (FN,LN) VALUES (textbox1.text,textbox2.text)"
mycom.Connection = mycon
myadpt.InsertCommand = mycom

myadpt.Update(myset, "hazemo")

ما الخطأ في هذا الكود

تم تعديل هذه المشاركة بواسطة hazzoom في 30 يوليو 2005 في 17:31

#2

أخي حازم جرب هذا الكود فهو الصحيح

Try
            Dim constr As String = "workstation id=HASAN;packet size=4096;integrated security=SSPI;data source=HASAN;persist security info=False;initial catalog=Salary"
            Dim mycon As New SqlClient.SqlConnection(constr)
            Dim mycom As New SqlClient.SqlCommand
            Dim myset As New DataSet
            Dim myadpt As New SqlClient.SqlDataAdapter

            mycon.Open()
            mycom.CommandText = "select * from hazemo"
            mycom.Connection = mycon
            myadpt.SelectCommand = mycom
            myadpt.SelectCommand.ExecuteNonQuery()
            myadpt.Fill(myset, "hazemo")

            mycom.CommandText = "INSERT INTO hazemo (FN,LN) VALUES ('" + TextBox1.Text + "','" + TextBox2.Text + "')"
            mycom.Connection = mycon
            myadpt.InsertCommand = mycom
            myadpt.InsertCommand.ExecuteNonQuery()

            myadpt.Update(myset, "hazemo")
            MessageBox.Show("OK")
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
#3

ألف شكر يا أخ حسن لكن أليس من المفروض أن يقوم ال Adapter أن يقوم بتنفيذ ال Command

تلقائيا علي أساس أنه يستخدمه كـ Parameter ويكون لا داعي لهذه الجمله :

myadpt.SelectCommand.ExecuteNonQuery()
#4

اخي حازم لقد جربت العديد من المحاولات ولكنها باءت بالفشل ولم يتم ارسال البيانات لقاعدة البيانات الا بعد استخدام executenonequery

والله اعلم

#6

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

Dim constr As String = "Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=."
Dim mycon As New SqlConnection(constr)
Dim mycom As New SqlCommand()
Dim myset As New DataSet()
Dim myadpt As New SqlDataAdapter()

mycon.Open()

mycom.CommandText = "select * from hazemo"
mycom.Connection = mycon
myadpt.SelectCommand = mycom
myadpt.SelectCommand.ExecuteNonQuery()
myadpt.Fill(myset, "hazemo")

mycom.CommandText = "INSERT INTO hazemo (FN,LN) VALUES ('" & TextBox1.Text & "','" & TextBox2.Text & "')"
mycom.Connection = mycon
myadpt.InsertCommand = mycom
myadpt.InsertCommand.ExecuteNonQuery()

ولكي نطبق التعديل نقوم باضافة السطر التالي :

myadpt.Update(myset, "hazemo")

فهمتوني ولا لأ ؟؟؟

تم تعديل هذه المشاركة بواسطة hazzoom في 31 يوليو 2005 في 16:56

#7

يا جماعه حد يعبرني أو يرد عليا .... :( :( :( !!!

حد يديني مثال لعمل تعديلات علي قادعة بيانات مباشره بدون Dataset مره وبالـ Dataset مره أخري يعني بطرقه أخري مثال لعمل تعديلات علي قاعدة البيانات في البيئه المنفصله مره والبيئه المتصله مره أخري........؟؟؟

أرجوكم أنا حيران جدا.......... :( :( :( ,,,

#8

ايه يا جماعه خليكوا معايا شويه :( ,

التعامل مع الـ Dataset هل يتم بجمل الـ SQL ولا لأ ؟؟؟

حد يرد علياااااااا....... :( :( :( ,,,

#9

اولا لكي يقوم ال SqlDataAdapter بالتحديث Update لابد من وجد عمود Primary Key في الجدول و جملة ال Select لتصبح كالامثلة التالية

Select id,fn,ln From MyTable
او
select * from MyTable

ثانيا لست بحاجة الي

myadpt.SelectCommand.ExecuteNonQuery()

لان طريقتي الfill و ال update في ال SqlDataAdapter تقوم بفتح الاتصال و تنفذ الاوامر بنفسها

ثالثا لكي يتم التنفيذ لابد من وجود UpdateCommand صالح للاستخدام و يستحسن استخدام CommandBuilder لتوليد هذا الامر كالتالي

Dim cb as  new SqlCommandBuilder(myadpt)
myadpt.UpdateCommand = cb.GetUpdateCommand() ' للتعديل
myadpt.InsertCommand = cb.GetInsertCommand() 'للاضافة
myadpt.DeleteCommand = cb.GetDeleteCommand() 'للحذف
myadpt.Update(ds,"MyTable")

تم تعديل هذه المشاركة بواسطة TODO في 2 أغسطس 2005 في 20:57

#10

ربنا يكرمك يا ريت تحط مثال علشان تسهل العمليه لأني تعبت بسبب الموضوع ده ,,,

#11

شكرا على المعلومة المفيدة

هذا الموضوع مغلق.

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