Monday, July 9, 2007

C# 2.0 -- SQL Server 2005

السلام عليكم,
النهاردة هاتكلم عن موضوع مكمل للموضوعين السابقين, وهو كيفية التعامل مع قاعدة بيانات
SQL Server Database من خلال برنامج مكتوب بالـ C#
في الواقع مع ظهور الـ
Visual Studio 2005 حدثت طفرة في هذا الموضوع فأصبح الامر موضع سحب و إلقاء Drag and Drop ورحمونا من التعامل مع دهاليز قاعدة البيانات:D
سأتكلم عن مثال: نفترض ان هدفي هو برنامج لعرض بيانات موظفين, لكل موظف رقم, اسم, وصف لوظيفته, نوع و تاريخ التحاقة بالوظيفة.
سأقوم بعمل قاعدة بيانات واضع فيها جدول (سأسمية انا
Data انت حر في اي تسمية تضعها), الجدول مكون من 5 اعمدة.
وسأضع فيه بعض البيانات (اي كلام يعني لتجربة البرنامج) ... إذا كنت لا تعرف كيفية عمل قاعدة بيانات
Database او كيفية عمل جدول او.... راجع موضوعي السابق "مقدمة إلى Microsoft SQL Server"

http://img215.imageshack.us/img215/9526/sqlon1.th.png

في البداية نحتاج إلى عملى مشروع جديد من النوع Windows Application
بالطبع يمكنك ان تختار النوع الذي تفضل ولكني سأكمل ان شاء الله بهذا النوع
ولمن لا يعرف فإن الـ
Windows Application تعني انه برنامج عادي ينتج ملف .EXE يمكن تشغيله على حاسبك

http://img100.imageshack.us/img100/7397/newapplicationuc8eb6.th.png

بعد كتابة اسم المشروع واختيار مكان حفظة, يتم انشاء المشروع الجديد

http://img109.imageshack.us/img109/303/newapplication1qs1.th.png

اولا نبدا بإضافة مصدر البيانات (اللي هوا قاعدة البيانات في المثال اللي شغال بيه) وذلك بأختيار Add new Data source من قائمة Data

http://img96.imageshack.us/img96/9071/addingdatasource1db1.th.png

يظهر معالج اضافة مصدر البيانات الجديد, وفي اول شاشة منه يسأل عن نوع مصدر البيانات ويتيح المعالج 3 انواع
1- قاعدة بيانات
Database
وهي تستخدم في حال كون مصدر بياناتك هو قاعدة بيانات
2-
Web service
وهي تستخدم في حال كون مصدر بياناتك هو خدمة من خدمات الويب
Web services. ولمن لا يعرف, فخدمات الويب هي برامج تعمل من خلال الويب وفي الغالب تستخدم في نشر نوع من المعلومات مثل خدمات الأخبار
3-
Object
وتختار في حال كون مصدر بياناتك شئ غير ذلك مثل ملف او برنامج اخر

ولأننا نستخدم قاعدة بيانات فسنختار الاختيار الاول

http://img96.imageshack.us/img96/8941/addingdatasource2wg4.th.png

الخطوة التالية يسأل عن مكان قاعدة البيانات وكيفية الاتصال بها.
وللتوضيح ليس إلا, فإن إي اتصال بقاعدة بيانات يجب ان يحدد فيه معلومات مثل عنوان الخادم, اسم قاعدة البيانات واسم المستخدم وكلمة السر للدخول إلى الخادم. وهذه البيانات تسمي الـ
Connection String
دعنا من كل هذا ولندع
Visual Studio يقوم بالامر, اضغط ذر New Connection

http://img219.imageshack.us/img219/1426/addingdatasource3qg6.th.png

هنا تظهر اهم نافذة واصعبها في التعامل وهي نافذة Add new connection.
تحتوي هذة النافذة على البيانات التي تكون الـ
connection string ففي اول مربع يسأل عن نوع قاعدة البيانات, وبختار المعالج Microsoft SQL Server كنوع افتراضي, ولكن يمكنك تغييره (بضغط ذر Change ) اذا كنت تستخدم نوع اخر من قواعد البيانات مثل اكسيس.
المربع التالي يوضع فيه عنوان الخادم (وهو نفس عنوان الخادم الذي استخدمته في الدخول
Login في بداية كلامنا عن الـ SQL Server ... راجع موضوع "مقدمة إلى Microsoft SQL Server" )
الجزء التالي يسأل عن اسم المستخدم وكلمة السر للدخول إلى قاعدة البيانات, إذا كانت قاعدة بيانات
SQL Server مثبت على حاسبك فأختر Use Windows Authentication. اما إذا كانت قاعدة البيانات موجودة على حاسب اخر فاختر Use SQL Server Authentication وادخل اسم المستخدم وكلمة المرور التي اعطاها لك مدير قاعدة البيانات Database Admin.
اخر جزء يسأل عن اسم قاعدة البيانات التي سوف نعمل عليها.
بعد ملئ البيانات السابقة اضغط ذر
Test Connection لإختبار ما اذا كان كل ما ادخلته من بيانات صحيحا ام لا.

http://img100.imageshack.us/img100/8607/addingdatasource4fm8.th.png

سيتم ضبط كل شئ إذا ما كانت البيانات التي ادخلتها صحيحة وتم الاتصال بالفعل بقاعدة البيانات, ويمكنك ان تلقي نظرة على الـ Connection String بالضغط على علامة الـ "+" المجاورة لكلمة Conncetion String

http://img100.imageshack.us/img100/3149/addingdatasource5ma9.th.png

النافذة التالية يسأل فيها عن حفظ الـ Conncection string في ملف الـ Appliction configuration اتركه كما هو.
اما الـ
Application Configuration فهي ملف يقرأة البرنامج عند عمله ويوضع فية بعض الثوابت الخاصة بعمل البرنامج مثل الـ connection string.
جميل... طيب ما الفرق بين الحفظ في الـ
Application Configuration وحفظ الثابت في إي كلاس Class ؟
من وجهة نظر البرنامج نفسة لا فرق, اما من وجهة نظر المبرمج فهناك فارق كبير. فلأن الـ
Application Configuration هي ملف عادي مكتوب بلغة الـ XML مما يعني امكناية تعدبلة من خلال اي محرر نصوص عادي مثل الـ Notepad وبالتالي يمكنك بكل سهولة تغييير ذلك الثابت دون الحاجة إلى إعادة بناء Compile برنامجك من البداية. وهذا الموقف قد يحدث بكثره, فمثلا إفترض ان عنوان خادم قاعدة البيانات قد تغير, فملا عليك وقتها إلا فتح ملف الـ Application Configuration وتعديل الاسم.

http://img141.imageshack.us/img141/7411/addingdatasource6vq1.th.png

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

http://img154.imageshack.us/img154/6100/addingdatasource7xf4.th.png

يظهر الجدول (او الجداول) التي قمت بتضمينها في مشروعك في نافذة Data Sources
ولمن لا تظهر لديه هذه النافذة, اختر
Show Data Sources من قائمة Data

http://img154.imageshack.us/img154/9484/addingdatasource8sx2.th.png

إلى هنا تم إضافة قاعدة البيانات إلى المشروع, ولكنها لا تظهر على واجهة البرنامج. الحل .... سحري!!!
فقط اسحب اسم الجدول الذي تريده من نافذة الـ
Data Sources والقه على واجهة البرنامج Form فتجد Visual Studio قد وضع كل ما يمكن تخيله من مكونات للتعامل مع الجدول... الم اقل لك... انه موضوع Drag and Drop ليس إلا :D

http://img247.imageshack.us/img247/4077/datagridws6.th.png

ابدأ بضبط شكل نافذة استعراض الجدول (تمسي DataGridView ) لكل تصبح واجهة البرنامج محترمة بعض الشئ :P

http://img246.imageshack.us/img246/315/datagrid1jd3.th.png

قم بتشغيل البرنامج بالضغط على ذر F5 من لوحة المفاتيح, لتجد كل شئ قد تم, يمكنك إضافة , تعديل و حذف إى سجل... مممم اعتقد انه لم يتبقي في مشروعي سوى البحث.
سأضيف مربع
TextBox وذر Button في الشريط العلوي للبرنامج لعمل إمكانية البحث

http://img154.imageshack.us/img154/3457/datagrid2mh4.th.png

أغلق البرنامج ولنعود إلى Visual Studio , اذهب إلى الشريط العلوي لبرنامجك واضغط علية سجد شكل ذر ظهر في أخره, اضغط على ذلك الذر لإضافة مكون جديد إلى الشريط

http://img194.imageshack.us/img194/6141/toolbarcn0.th.png

http://img213.imageshack.us/img213/8458/toolbar1ca3.th.png

اختر Button لأضافة ذز, ثم كرر العملية ولكن بالضغط على TextBox لإضافة مربع نص.

http://img146.imageshack.us/img146/9651/toolbar3zn7.th.png

غير اسم مربع النص والذر إلى اسماء معبرة (محترمة :D ) وذلك بالضغط على اي منهما وتغيير اسمة من نافذة الخصائص, ثم كرر العملية مع الأخر.
لقد اختر في مشروع اسمي
QueryToolStripTextBox و queryToolStripButton لمربع النص والذر على الترتيب. يمكنك اختيار اية اسماء تفضلها.

http://img303.imageshack.us/img303/7752/toolbar2iq0.th.png

http://img170.imageshack.us/img170/9213/toolbar4mk4.th.png

انظر إلى اسفل نافذة التصميم ولا حظ اسم مكون موضوع بها وهو الـ BindingSource. في مشروع (كما بالصورة) يظهر اسمهة DataBindingSource وذلك لأن اسم الجدول الذي اخترته كان "Data". ربما يكون الاسم الموضوع عندك مختلف تبعا لأسم الجدول الذي ادرجته عندك.

http://img223.imageshack.us/img223/963/toolbar5sd5.th.png

يتبقي ان نكتب كود البحث, اضغط دبل كليك على الذر لتظهر نافذة الكود واكتب فيها الكود التالي مع مراعاة استبدال DataBindingSource بأسم الـ Binding Source الموجود في مشروعك

http://img84.imageshack.us/img84/1125/toolbar6uk5.th.png

اضغط F‏5 لتشغيل برنامجك, تلاحظ خاصية البحث!!! .... وهذا كل شئ Open-mouthed

http://img223.imageshack.us/img223/5826/toolbar7ti9.th.png

 

No comments: