الدكتورة هدى
.:: إدارية الأقـسـام العامـة ::.
شرح أساسيات برمجة قواعد البيانات في فيجوال بيسك دوت نت
قواعد البيانات DATABASE
الموضوع شرحي وليس منقول
مقدمة:ماهي قواعد البيانات:نستطيع أن نقول عنها بأنها مجموعة منظمة من المعلومات مخزنة في ملف ويمكننا إنشاء قواعد بيانات فعالة باستعمال مجموعة متنوعة من برامج قواعد البيانات من بينها مايكروسوفت أكسس ومايكروسوفت SQL وأوراكل وتعتبر برمجة قواعد البيانات من أهم الاختصاصات في البرمجة لان الشركات الكبرة والصغرة والمؤسسات والجمعيات وغيرها تعتمد اعتمادا أساسيا على تطبيقات قواعد البيانات لتخزين بياناتها سواء كانت أسماء العمال والموظفين وعناوينهم وأسماء الزبائن وكشوفات حساباتهم ..........الخ .
سنتعلم في هذا الشرح العمليات الأساسية على قواعد البيانات باستخدام تقنية ADO.NET الموجودة في فيجوال بيسك دوت نت وٍسأستخدم فيجوال بيسك دوت نت 2008 وسأقوم بشرح الأمور التالية:
1- ربط قاعدة بيانات من نوع أكسس مع فيجوال بيسيك دوت نت
2- عرض بيانات شخص معين من الجدول الثاني بعد تحديد رقمه بالجدول الأول باستخدام DataGrid
3- عرض بيانات أكثر من جدول داخل أداة Data Grid واحدة
4- كيف نستخدم عبارات الاستعلام SQL
5- بناء صف يدويا للتعامل مع البيانات
6- إنشاء مشهد للبيانات باستخدام الأداة DataView
7- إنشاء تقارير كريستال ريبورت بسيطة
حتى نستطيع ربط قاعدة بيانات من نوع أكسس هناك طريقتان لذلك إما عن طريق الإطارDataSourec أو إما عن طريق الأدوات OleDbConnection و
OleDbDataAdapterوغيرها .
اولا : الإطار DataSourec : وهو طريقة سهلة جدا لربط قاعدة البيانات وظهر في الإصدارات التي بعد الإصدار 2005 فمن خلاله تستطيع ربط قاعدة البيانات بخطوات بسيطة فقط وبدون أي كود برمجي الآن سأقوم بتطبيق مثال عملي :
مثال على ما سبق:
1- افتح فيجوال ستديو واختر مشروع جديد من نوع WindowsApplication قم بتسميته DATABASE With Data Source ستفتح لك بيئة التطوير مشروعا جديدا فيه نافذة جديدة فارغة
2- الآن من القائمة Data اختر Show Data Sources وذلك لإظهار الإطار Data Sources
إذا كان مخفيا شاهد الصورة التالية:
3- الآن اختر الاختيار Add New Sources الموجود داخل الإطار data Sources فسيفتح معالج تستطيع من خلاله إنشاء الاتصال بقاعدة البيانات اختر منه الاختيار DataBase ثم اضغط على التالي للمتابعة شاهد الصورة:
4- الآن اختر الخيار New Connection بعدها سيظهر لك مربع الحوارChoose Data Source
ستختار منه نوع قاعدة البيانات وفيه عدة أنواع Access,,Oracle,,SQL Server,,وغيرها نحن سنختار Microsoft Access DataBase File قاعدة أكسس ثم اضغط على Continue شاهد الصورة التالية :
5-الآن اضغط على الزر Browse واختر قاعدة بيانات أكسس من جهازك شاهد الصورة:
6- الآن تستطيع اختبار إذا تم الاتصال مع قاعدة البيانات بنجاح وذلك عن طريق ضغط الزر TestConnection إذا كانت كل الأمور صحيحة فستظهر لك رسالة تخبرك بنجاح الاتصال بقاعدة البيانات الآن اضغط على OK شاهد الصورة:
7- الآن اضغط على التالي بعدها ستظهر لك رسالة تقول لك إذا كنت تريد حفظ نسخة من قاعدة البيانات مع ملفات مشروعك هذا الخيار يفيد في حال كنت تريد توزيع برنامجك على أجهزة أخرى اختر نعم شاهد الصورة التالية :
8-الآن في النافذة التي تليها اضغط على التالي بعدها ستظهر لك نافذة ستعرض لك الجداول الموجودة في قاعدة البيانات وتستطيع منها اختيار الجداول التي تريد أن تتعامل معها أو تختار كل الجداول الموجودة إذا أردت وذلك بتحديد علامة الصح عليها اختر الجداول التي تريدها ثم اضغط إنهاء للمتابعة شاهد الصورة التالية :
الآن انتهينا من الاتصال بقاعدة البيانات الآن اذهب إلى الإطار DataSources وشاهد جداول قاعدة البيانات التي اخترتها كيف نزلت داخله ولاحظ الحقول التابعة للجداول قم بسحبها على النموذج شاهد الصورة التالية :
بعد سحبها على النموذج سيتم تلقائيا توليد مربعات نص وأدوات عنوان وشريط أدوات لعرض البيانات يحتوي شريط الأدوات على أزرار التالي والسابق والسجل الأول والأخير وزر إضافة وزر حذف وزر حفظ شاهد الصورة التالية :
الآن انتهينا من شرح الطريقة الأولى لربط قواعد البيانات وهي عن طريق الإطار DataSources
وقد لا حظت سهولة هذه الطريقة فقد قمنا بربط قاعدة البيانات وعرض البيانات التي داخلها بعدة خطوات بسيطة وبدون استخدام أي كود برمجي .
ثانيا: ربط قاعدة بيانات أكسس عن طريق الأدوات :وسنستخدم في هذه الطريقة مجموعة من الأدوات الموجودة ضمن دوت نت فروم وورك والتي تتعامل مع قواعد البيانات وهي موجودة ضمن شريط الأدوات ستقوم بإضافتها على النموذج ثم استخدامها لربط قاعدة البيانات سأشرح عمل هذه الأدوات
شاهد الصورة التالية:
الأداة OleDbConnection : ويتم الاتصال بقاعدة البيانات عن طريق هذه الأداة أي أن هذه الأداة أساسية في عملية الاتصال عندما تضيف هذه الأداة من خلالها تحدد مسار قاعدة البيانات ونوعها كما سنشرح لاحقا.
الأداة OleDbDataAdapter :هذه الأداة يطلق عليها اسم ملائم البيانات وفائدتها هي عندما نتصل بقاعدة البيانات عن طريق الأداة OleDbConnection فيأتي دورها هنا فمن خلالها نقوم بإظهار الجداول الموجودة داخل قاعدة البيانات كي نتمكن من التعامل معها .
الأداة OleDbCommand : وهذه الأداة يطلق عليها اسم قارئ البيانات وفائدتها مثل الأداة السابقة تماما.
الأداة BindingNavigator : وهذه الأداة يطلق عليها اسم ملاح البيانات فائدتها بأنها تستخدم للتنقل بين السجلات السابق والتالي والسجل الأخير والأول كما يوجد فيها زر إضافة سجل جديد وحذف سجل وحفظ .
الأداة DataGrid :وهذه الأداة لعرض جداول البيانات كاملة .
سأقوم الآن بتطبيق مثال حول طريقة إنشاء اتصال بقاعدة بيانات بواسطة الأدوات السابق ذكرها :
مثال على ما سبق:
أولا:افتح فيجوال ستيديو وقم باختيار مشروع جديد من نوع WindowsApplication وستفتح لك بيئة التطوير نافذة جديدة اذهب إلى شريط الأدوات وستجد تحت الكلمة DATA كل الأدوات التي تتعامل مع قواعد البيانات اختر الأداة OleDbConnection ثم أضفها على النموذج ومن الخاصية
ConnectionString التابعة للأداة OleDbConnection اختر New Connection شاهد الصورة التالية :
الآن ستظهر لك النافذة AddConnection اضغط على الزر Change لاختيار نوع قاعدة البيانات وستختار النوع مايكروسوفت أكسس واضغط على الزر Browse لاختيار قاعدة البيانات التي تريد الاتصال بها وبعدها اضغط على الزر Test Connection لتجربة الاتصال بقاعدة البيانات إذا كان الاتصال صحيحا وبدون مشاكل فستظهر رسالة تخبرك بذلك وبعدها اضغط على Ok للمتابعة شاهد الصورة التالية:
الآن لقد تم الاتصال بقاعدة البيانات بنجاح لكن لا نستطيع الوصول إلى جداول قاعدة البيانات لأنه يجب أن نقوم بتهيئة هذه الجداول وإظهارها ولعمل ذلك سنستخدم أداة ملائم البيانات والآن من شريط الأدوات قم باختيار الأداة OleDbAdapter وأضفها على النموذج وبعد إضافتها سيفتح تلقائيا معالج الخيارات الخاص بها اضغط على زر New Connection واختر اتصال قاعدة البيانات الذي انشأناه سابقا ثم اضغط التالي للمتابعة شاهد الصورة التالية :
الآن في النافذة التي تليها أيضا اضغط على التالي ثم ستظهر نافذة تستطيع من خلالها إظهار جداول قاعدة البيانات ولعمل ذلك قم بكتابة الاستعلام التالي داخل المستطيل الأبيض :
كود:
Select ID,NAME,JOB,BirthDay From BAYANAT
Select ID,NAME,JOB,BirthDay From BAYANAT
BAYANAT هو اسم الجدول الذي سنظهره و ID,,NAME,,JOB,,BirthDay هي أسماء الحقول التابعة له ولإظهار هذا الجدول قمنا باستخدام الاستعلام SELECT .
الآن اضغط على الزر Query Builder للتأكد من أن جملة الاستعلام صحيحة إذا كانت صحيحة فستظهر نافذة سترى فيها الجدول وحقوله قد ظهروا شاهد الصور التالية :
الآن اضغط على التالي للمتابعة وبعدها ستظهر لك نافذة تخبرك بنجاح العملية وبأنه تم تهيئة الجدول السابق ذكره BAYANAT وتخبرك أيضا بأنك تستطيع استخدام أوامر الاستعلام على هذا الجدول وهي Insert,,Delete,,Updata,,Select الآن اضغط على إنهاء .
الآن من القائمة DATA اختر الاختيار Generate DataSet بعدها سيظهر مربع حوار يحتوي على الجداول التي قمنا بتهيئتها سابقا باستخدام الأداة OleDbAdapter قم باختيار الجدول الذي تريد العمل عليه ونحن قمنا بتهيئة الجدول BAYANAT فقط هذا يعني انه سيكون اختيارنا الوحيد قم بتحديده ثم اضغط على OK وعندها سيتم إضافة الأداة DataSet إلى مشروعك تلقائيا شاهد الصورة التالية :
الآن قم بإضافة أربع مربعات نص TextBox وأربع أدوات تسمية Label وارسمها على النموذج وعدل خصائصها لتصبح على هذا الشكل :
سنستخدم مربعات النص لعرض بيانات الجدول BAYANAT كل مربع نص سيعرض بيانات حقل من الحقول سأقوم بربط مربع النص الأول مع الحقل ID افعل مايلي :
انقر على مربع النص الأول ومن نافذة الخصائص ستجد الخاصية الفرعية Text التابعة للخاصية
DataBindings قم بجعلها كما في الصورة تماما
قم بتكرار نفس العملية مع جميع مربعات النصوص لربطها بباقي الحقول .
الآن ادخل الكود التالي في الحدث Load التابع للفورم أو النموذج
كود:
Me.OleDbDataAdapter1.Fill(Me.DataSet11)
Me.OleDbDataAdapter1.Fill(Me.DataSet11)
شرح الكود:وهذا الكود مهمته هي تحميل بيانات الجدول BAYANAT ليتم عرضها في مربعات النصوص
الآن قم بتجربة البرنامج ستجد بأن البيانات ظهرت داخل الحقول .
سنقوم بإضافة زرين على النموذج الأول Next والثاني Prv مهمتهما هي التنقل بين سجلات الجدول الزر الأول للانتقال إلى السجل التالي والزر الثاني للانتقال إلى السجل السابق وسنضيف الأداة DataGrid وفائدتها هي أنها تقوم بعرض جدول البيانات كاملا بكافة حقوله وسجلاته وصفوفه وأعمدته .
بعد أن تضيف الزرين وترسمهم على النموذج في حدث النقر للزر Next ادخل الكود التالي :
كود:
Me.BindingContext(Me.DataSet11, "BAYANAT").Position += 1
Me.BindingContext(Me.DataSet11, "BAYANAT").Position += 1
ومهمة هذا الكود هي الانتقال خطوة واحدة فقط إلى السجل التالي
وفي حدث النقر للزر Prv ادخل الكود التالي :
كود:
Me.BindingContext(Me.DataSet11, "BAYANAT").Position -= 1
Me.BindingContext(Me.DataSet11, "BAYANAT").Position -= 1
مهمة هذا الكود إعادة السجل إلى الوراء خطوة واحدة يعني إلى السجل السابق
الآن قم بإضافة الأداة DataGrid من شريط الأدوات وارسمها على النموذج بشكل مناسب وبعد ذلك لكي يتم عرض الجدول BAYANAT داخلها يجب أن نقوم بربطها بقاعدة البيانات ويتم ذلك عن طريق الخاصية DataSource شاهد الصور القادمة :
قم بإضافة زر ثالث على النموذج وسميه Save وهذا الزر سيكون لحفظ البيانات الجديدة التي سندخلها على الجدول وفي حدث النقر التابع له ادخل الكود التالي :
كود:
Me.OleDbDataAdapter1.Update(Me.DataSet11)
Me.OleDbDataAdapter1.Update(Me.DataSet11)
ووظيفة هذا الكود هي لحفظ البيانات الجديدة التي يتم إدخالها على الجدول.
الآن قم بتجربة المثال وشاهد الصورة النهائية للمثال بعد كل شيء
نهاية الجزء الأول ربط قاعدة بيانات أكسس مع فيجوال بيسك دوت نت
يتبع..........................في المرة القادمة
2 - عرض بيانات شخص معين من الجدول الثاني بعد تحديد رقمه بالجدول الأول باستخدام DataGrid