20-09-12, 04:04 AM
نجيب المجيدي
مقدمة
نعلم جميعاً أن التطبيق الجيد هو ذلك الطبيق الذي يسمح للمستخدم بعمل الكثير بسهولة وبدون تعقيد تعدد الأزرار و الشاشات , فكرت أنه سيكون من الجميل لو جعلنا أداة الداتا جريد الخاصة ببرنامجنا تقوم بعمل كافة التغييرات على جدول ما من إضافة و تعديل و حذف بضغطة زر واحدة وبكود بسيط , حسناً دعونا نبدأ بالموضوع
المتطلبات:
أولاً سنقوم بتكوين هذا الجدول البسيط لنطبق عليه مثالنا والذي توضحه جملة SQL التالية:
ثانياً قمت بعمل المثال السابق باستخدام قاعدة بيانات Oracle و مزود البيانات ODP.NET و بالتالي سنحتاج إلى تنزيل Oracle Tools و بالطبع استيراد المكتبة Oracle.DataAccess.DLL
الكود:
Imports
Declarations
Retrieving Code
و الآن إلى كود الإضافة و التعديل و الحذف
أرجو أن أكون قد وفقت في الطرح و أتمنى أن لا تبخلوا علي بالمناقشة و التصويب
مقدمة
نعلم جميعاً أن التطبيق الجيد هو ذلك الطبيق الذي يسمح للمستخدم بعمل الكثير بسهولة وبدون تعقيد تعدد الأزرار و الشاشات , فكرت أنه سيكون من الجميل لو جعلنا أداة الداتا جريد الخاصة ببرنامجنا تقوم بعمل كافة التغييرات على جدول ما من إضافة و تعديل و حذف بضغطة زر واحدة وبكود بسيط , حسناً دعونا نبدأ بالموضوع
المتطلبات:
أولاً سنقوم بتكوين هذا الجدول البسيط لنطبق عليه مثالنا والذي توضحه جملة 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
أرجو أن أكون قد وفقت في الطرح و أتمنى أن لا تبخلوا علي بالمناقشة و التصويب