منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : الإضافة و التعديل و الحذف من جدول عن طريق DataGrid
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
نجيب المجيدي

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

المتطلبات:

أولاً سنقوم بتكوين هذا الجدول البسيط لنطبق عليه مثالنا والذي توضحه جملة SQL التالية:
كود :
Create table testTbl (id number(3),name varchar2(10), job varchar2(10));

ثانياً قمت بعمل المثال السابق باستخدام قاعدة بيانات Oracle و مزود البيانات ODP.NET و بالتالي سنحتاج إلى تنزيل Oracle Tools و بالطبع استيراد المكتبة Oracle.DataAccess.DLL


الكود:


Imports

كود :
Imports Oracle.DataAccess.Client

Declarations

كود :
Dim conn As New OracleConnection("Data Source=ServiceName;User ID=UserName;Password=Password")

Dim da As OracleDataAdapter = New OracleDataAdapter

Dim ds As New DataSet

Retrieving Code

كود :
da.SelectCommand = New OracleCommand("select * from testTbl", conn)

Try

If conn.State = ConnectionState.Closed Then conn.Open()

da.Fill(ds, "test")

myDataGrid.DataSource = ds.Tables("test")

conn.Close()

Catch ex As Exception

MsgBox(ex.Message)

End Try


و الآن إلى كود الإضافة و التعديل و الحذف


كود :
Dim param As OracleParameter

If conn.State = ConnectionState.Closed Then conn.Open()

Dim command_builder As New OracleCommandBuilder(da) 'create new command builder and passing the Dataadapter to it

Try

da.UpdateCommand = New OracleCommand("UPDATE testTbl SET name=:name, job=:job where id=:OLDid", conn) 'building Update command

da.DeleteCommand = New OracleCommand("DELETE FROM testTbl where id=:OLDid", conn) ' building Delete command

da.UpdateCommand.Parameters.Add(":name", OracleDbType.Varchar2, 10, "name") 'Passing parameters to the command builder

da.UpdateCommand.Parameters.Add(":job", OracleDbType.Varchar2, 10, "job")

param = da.UpdateCommand.Parameters.Add(":OLDid", OracleDbType.Int32, 3, "id")

param = da.DeleteCommand.Parameters.Add(":OLDid", OracleDbType.Int32, 3, "id")

param.SourceVersion = DataRowVersion.Original

da.Update(ds, "test") 'Update Data in the Table

conn.Close()

Catch ex As Exception

MsgBox(ex.Message)

End Try

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