|
الدرس 15 التعامل مع البيانات بشكل مرئي
|
|
01-27-2010, 03:07 PM
(اخر تعديل لهذه المشاركة : 01-31-2010 01:18 AM بواسطة مصطفى الشريف.)
مشاركات: #1
|
|||
|
|||
|
الدرس 15 التعامل مع البيانات بشكل مرئي
السلام عليكم
تعلمنا فيما سبق التعامل مع ال ADO.Net من خلال الفصائل SqlCommand و SqlConnection و Data Reader و Table adapter و data Adapter و Data Set و كان ذلك من الكود اليوم سنتعامل مع فواعد البيانات بشكل مرئي من خلال بيئه التطوير نفسها لكي يكون لديك فكره عما سنفعله فأننا سنتعامل مع كائن DataSet ذلك الكائن سيقوم بدور مخزن للجداول البيانات كما تعلم.. لكل جدول سنتعامل مع كائن اسمه TableAdapter حاجه ذي ال DataAdapter.وكما تعلم تلك الاداه هي المسؤله الاتصال بالجدول وتنفيذ الاستعلامات.... ارجو متابعه الشكل التالي:- ![]() سنقوم الان بتطبيق برنامج بسيط يتعامل مع قاعده بيانات Access اسمها EmployeeData تحتوي جدولين الاول اسمه Data بنيته كالتالي حقل EmployeeName نوعه Text وهو ال Primary Key حقل EmployeeAge نوعه Number حقل EmployeeSalary نوعه Currency الثاني اسمه Attend_reg بمعنى سجل الحضور بنيته كالتالي حقل EmployeeAge نوعه Number حقل EmployeeSalary نوعه Currency لاحظ هذا الجدول لا يحتوي على مفتاح او Primary key بهذا نكون انتهينا من قاعده البيانات . الان ابدأ مشروع جديد من نوع Windows من القائمه Data اختار Show Data Source ومن الاطار Data Source اضغط على Add new data source ![]() من النافذه التي ستظهر لك اختار نوع البيانات DataBase ثم Next ![]() من النافذه التي ستظهر لك بعنوان choose your data Connection اضغط على الزر New Connection ستظهر لك نافذه Add connection لاحظ ان ال Data Source يشير الى Microsoft Access DataBase File OLE BD ان لم يكن كذلك اضغط على الزر Change و اختار Microsoft Access DataBase File OLE BD ثم من النافذه Add connection اضغط على Browse و اختار مكان قاعده البيانات وقم بكتابه اسم المستخدم و كلمه السر اذا لزم الامر ,, اضغط test Connection لأختبار الاتصال ..ثم اضغط Ok ثم Next بالنافذه choose your data Connection ![]() تظهر لك بعد ذلك النافذه Save Your connection string to the app التي تسألك هل تريد حفظ نص الاتصال بالتطبيق ضع علامه على Yes Save Connection as ثم اضغط next لتظهر النافذه Choose your DataBase Objects التي من خلالها تختار منها الجداول التي ستدمج مع ال DataSet وتحديد اسم ال DataSet الذي سيكون EmployeeDataSet. ![]() لاحظ تم اضافه ملف قاعده البيانات للمشروع ![]() الجدير بالذكر أن الفيجوال ستديو دوت نت يملك خاصية أعادة نسخ كافة ملفات المشروع (ملفات البرنامج من الملف التنفيذي والمكتبات الديناميكية و قواعد البيانات ) إلى مجلد التجريب /Debug/bin ففي حال قمت بتجربة البرنامج ومن ثم قمت بتعديل بسيط جداً كأن غيرت موقع ليبل بالتصميم سيعود البرنامج وينسخ القاعدة الجديدة من مجلد ملفات المشروع (القاعدة الرئيسية هناك ) إلى مجلد التجربة /Debug/bin, وعندها ستفقد المعلومات القديمة في القاعدة القديمة التي تم الكتابة فوقها (وتعتقد بأن البرنامج لم يحفظ البيانات ) يمكنك بتعديل خاصية copy to output directory لملف قاعدة البيانات في ال Project explorer وأجعلها تساوي Do not copy وبهذه الطريقة وأثناء التجريب لن تفقد المعلومات المضافة للبرنامج في كل تجربة لكن لاتنسى أعادة وضع قاعدة بيانات نظيفة (القاعدة من مجلد ملفات المشروع ) بعد الأنتهاء وتحزيم البرنامج ويمكنك أيضاً تجربة البرنامج بشكل مباشر من مجلد /Debug/bin وسترى أن المعلومات تبقى محفوظة كل مرة من الاطار DataSource اختار الملف EmployeeDataDataSet واضغط على الزر Edit DataSet With Designer لتظهر لك النافذه التاليه ![]() تلك النافذه تحوي على تمثيل مرئي لل Data Set لاحظ لكل جدول يوجد اداه TableAdapter وكما تعلم تلك الاداه هي المسؤله عن الاتصال بقاعده البيانات..وتنفيذ الاستعلامات ما أشير اليه بالصوره في اطار خصائص ال TableAdapter هو الخواص التاليه 1-Connection : وهو يحدد طريقه الاتصال بقاعده البيانات اضغط على علامه + بجانبه لتظهر الخاصيه 1-1- ConnectionString وهو يمثل نص الاتصال او ال Connection String الذي يتم تحديد اسم قاعده البيانات و مكانها من خلاله ..ويمكن تغييره فيما بعد. __________________________________________________________ 2-DeleteCommand :وهو يحدد امر مسح السجل لاحظ انه سيساوي None لو ان الجدول لا يحتوي على Primary Key اضغط على علامه + بجانبه لتظهر الخاصيه 2-1-Command Text وهي تمثل استعلام SQL يقوم بألغاء سجل معين لاحظ ان الاستعلام يستخدم ال Parameters او المعاملات . 2-2-Command Type وهي تحدد نوع الامر Text (استعلام) او Stored Procedure (اجراء مخزن). 2-3-Parameters وهي تحدد المعاملات التي سيحتاجها الامر. ________________________________________________________ 3-InsertCommand :وهو يحدد امر اضافه السجل لاحظ انه سيساوي None لو ان الجدول لا يحتوي على Primary Key اضغط على علامه + بجانبه لتظهر الخاصيه 3-1-Command Text وهي تمثل استعلام SQL يقوم بأضافه سجل معين لاحظ ان الاستعلام يستخدم ال Parameters او المعاملات . 3-2-Command Type وهي تحدد نوع الامر Text (استعلام) او Stored Procedure (اجراء مخزن). 3-3-Parameters وهي تحدد المعاملات التي سيحتاجها الامر. ________________________________________________________ 4-SelectCommand :وهو يحدد امر Select لاحظ انه لا يعتمد على Primary Key اضغط على علامه + بجانبه لتظهر الخاصيه 4-1-Command Text وهي تمثل استعلام SQL يقوم بأسترجاع كافه السجلات. 4-2-Command Type وهي تحدد نوع الامر Text (استعلام) او Stored Procedure (اجراء مخزن). 4-3-Parameters وهي تحدد المعاملات التي سيحتاجها الامر. ________________________________________________________ 5-UpdateCommand:وهو يحدد امر تعديل السجل لاحظ انه سيساوي None لو ان الجدول لا يحتوي على Primary Key اضغط على علامه + بجانبه لتظهر الخاصيه 5-1-Command Text وهي تمثل استعلام SQL يقوم بتعديل سجل معين لاحظ ان الاستعلام يستخدم ال Parameters او المعاملات . 5-2-Command Type وهي تحدد نوع الامر Text (استعلام) او Stored Procedure (اجراء مخزن). 5-3-Parameters وهي تحدد المعاملات التي سيحتاجها الامر. _____________________________________________________ الان ارجع للفورم الخاص بالمشروع ومن الاطار Data Source قم بسحب الجدول Data و افلاته على الفورمه كالتالي ![]() لاحظ اضافه المكونات التاليه للفورمه ![]() نبدأ بال EmployeeDataDataSet وتلك الاداه هي نسخه من حاويه البيانات او ال Data set الموجوده بالمشروع اما ال DataTableAdapter هو نسخه من ال TableAdapter الموجوده كذلك بالمشروع. اما ال DataBindingSource فهي تمثل طبقه بين ال DataTableAdapter و الادوات الخاصه بالتعامل مع المستخدم مثل الاداتين DataDataGridView و DataBindingNavigator و ازرار التحكم... اما الDataDataGridView فهي الاداه الخاصه بعرض الجدول لاحظ الخاصيه DataSource التي تحدد فيها مصدر البيانات لاحظ انني حدته DataBindingSource وممكن تربطها مباشره بال DataSet ايضاً الخاصيه DataMember و التي تحدد الجدول الذي سيتم استعراضه لاحظ اننا لم نحدده لأننا حددناه في الاداه DataBindingSource على الجدول Data . اما الاداه DataBindingNavigator فوضيفتها توفير وسيله سهله وسريعه للتنقل بين السجلات كذلك تعديل السجلات واضافه سجلات جديده وحذف السجلات. بهذا نكون انتهينا من ربط قاعده البيانات مع الفورم قم بتشغيل البرنامج على هذا الوضع وقم بتجربته يتبع... 01100001-00101101-01101100-00101101-01101100-00101101-01100001-00101101-01101000
|
|||
|
|
02-05-2010, 04:27 AM
(اخر تعديل لهذه المشاركة : 02-27-2010 05:51 PM بواسطة مصطفى الشريف.)
مشاركات: #2
|
|||
|
|||
|
السلام عليكم
نكمل تطبيق المثال السابق: لاحظ انه تم اضافه الاجراء التالي بشكل اّلي للكود الخاص بالفصيله Form1 PHP كود: 'TODO: This line of code loads data into the 'EmployeeDataDataSet.Data table. You can move, or remove it, as needed.حيث تم استدعاء الاسلوب Fill. الخاص بالاداة DataTableAdapter الذي يستقبل معامل من النوع DataTable وقد مرر له الاجراء الجدول EmployeeDataDataSet.Data. كذلك تم اضافه الاجراء التالي بشكل اّلي للكود الخاص بالفصيله Form1 PHP كود: Private Sub DataBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataBindingNavigatorSaveItem.Clickو يتم تنفيذ الاجراء السابق عند الضغط على زر DataBindingNavigatorSaveItem الخاص بالأداة DataBindingNavigator حيث يتم استدعاء الاسلوب Validate. الخاص بالكائن Me الذي يقوم بوضيفه التحقق من الادخالات في الاداه DataGridView كذلك يتم استدعاء الاسلوب ()EndEdit. الخاص بالكائن DataBindingSource الذي كما تعلم يمثل طبقه وسيطه بين الادوات الخاصه بالتعامل مع المستخدم والكائن DataTableAdapter . كذلك الاسلوب Update الخاص بالكائن DataTableAdapter الذي يستقبل معامل من النوع DataTable وقد مرر له الاجراء الجدول EmployeeDataDataSet.Data المعدل ليرسل التعديلات لقاعده البيانات. الان دعنا نعدل المثال ليعمل بواجه استعمال معهوده او معروفه قم بمسح الاداه BindingNavigator1 كذلك قم بمسح الاجراء DataBindingNavigatorSaveItem_Click من كود الفصيله Form1. ثم قم بأضافه ألادوات التاليه: 3 اداه زر امر واحد بأسم جديد و اّخر بأسم حفظ و اّخر بأسم حذف ادخل الكود التالي في حدث الضغط في الزر جديد PHP كود: Me.DataBindingSource.AddNew() لاحظ ان الكود السابق يقوم بأستدعاء الاسلوب ()AddNew. الخاص بالأداه DataBindingSource الذي يقوم بتأهيل الادوات المربوطه به من خلال الخاصيه DataSource التي تجدها في اغلب الادوات التي تتعامل مع المستخدم مثل ال DataGridView و التالي سنتعامل مع الاداة DataBindingSource بشكل عام في باقي الكود الان نأتي للكود الخاص بحفظ البيانات: PHP كود: Tryلاحظ اننا استخدمنا الجمل Try..Catch..End Try للتأكد من صحه اتمام العمليه حيث في حاله حدوث خطأ سيتم تنفيذ الكود بين جمله Catch ex As Exception وجمله End Try حيث نعرض رساله تشير الى الخطأ : MsgBox(" فشل التعديل بسبب " & Chr(10) & ex.Message).
حيث استخدمنا الداله Chr(10) التي تعود بزر الادخال Enter لعرض سطر جديد وثم استخدمنا الاسلوب Message. الخاص بالكائن ex لعرض محتوى رساله الخطأ. في الكود السابق استخدمنا الاسلوب update. الخاص بالكائن DataTableAdapter حيث يتم تمرير كائن جدول الذي هو في حالتنا Data حيث يتم استدعاء جمله SQL مخزنه بالكائن DataTableAdapter لتقوم بوظيفه ادخال البيانات بالجدول. نأتي الان لكود حذف البيانات : PHP كود: If Me.DataBindingSource.Count = 0 Thenفي الكود التالي نتأكد اولاً من وجود سجل بالجدول Data من خلال استدعاء الاسلوب Count. الخاص بالكائن DataBindingSource كود: If Me.DataBindingSource.Count = 0 Thenثم يكمل البرنامج تنفيذ الكود الخاص بحذف البيانات كود: Me.DataBindingSource.RemoveCurrent() |
|||
|
|
|













