C# 2.0 -- SQL Server 2005
السلام عليكم,
النهاردة هاتكلم عن موضوع مكمل للموضوعين السابقين, وهو كيفية التعامل مع قاعدة بيانات SQL Server Database من خلال برنامج مكتوب بالـ C#
في الواقع مع ظهور الـ Visual Studio 2005 حدثت طفرة في هذا الموضوع فأصبح الامر موضع سحب و إلقاء Drag and Drop ورحمونا من التعامل مع دهاليز قاعدة البيانات:D
سأتكلم عن مثال: نفترض ان هدفي هو برنامج لعرض بيانات موظفين, لكل موظف رقم, اسم, وصف لوظيفته, نوع و تاريخ التحاقة بالوظيفة.
سأقوم بعمل قاعدة بيانات واضع فيها جدول (سأسمية انا Data انت حر في اي تسمية تضعها), الجدول مكون من 5 اعمدة.
وسأضع فيه بعض البيانات (اي كلام يعني لتجربة البرنامج) ... إذا كنت لا تعرف كيفية عمل قاعدة بيانات Database او كيفية عمل جدول او.... راجع موضوعي السابق "مقدمة إلى Microsoft SQL Server"
في البداية نحتاج إلى عملى مشروع جديد من النوع Windows Application
بالطبع يمكنك ان تختار النوع الذي تفضل ولكني سأكمل ان شاء الله بهذا النوع
ولمن لا يعرف فإن الـ Windows Application تعني انه برنامج عادي ينتج ملف .EXE يمكن تشغيله على حاسبك
بعد كتابة اسم المشروع واختيار مكان حفظة, يتم انشاء المشروع الجديد
اولا نبدا بإضافة مصدر البيانات (اللي هوا قاعدة البيانات في المثال اللي شغال بيه) وذلك بأختيار Add new Data source من قائمة Data
يظهر معالج اضافة مصدر البيانات الجديد, وفي اول شاشة منه يسأل عن نوع مصدر البيانات ويتيح المعالج 3 انواع
1- قاعدة بيانات Database
وهي تستخدم في حال كون مصدر بياناتك هو قاعدة بيانات
2- Web service
وهي تستخدم في حال كون مصدر بياناتك هو خدمة من خدمات الويب Web services. ولمن لا يعرف, فخدمات الويب هي برامج تعمل من خلال الويب وفي الغالب تستخدم في نشر نوع من المعلومات مثل خدمات الأخبار
3- Object
وتختار في حال كون مصدر بياناتك شئ غير ذلك مثل ملف او برنامج اخر
ولأننا نستخدم قاعدة بيانات فسنختار الاختيار الاول
الخطوة التالية يسأل عن مكان قاعدة البيانات وكيفية الاتصال بها.
وللتوضيح ليس إلا, فإن إي اتصال بقاعدة بيانات يجب ان يحدد فيه معلومات مثل عنوان الخادم, اسم قاعدة البيانات واسم المستخدم وكلمة السر للدخول إلى الخادم. وهذه البيانات تسمي الـ Connection String
دعنا من كل هذا ولندع Visual Studio يقوم بالامر, اضغط ذر New Connection
هنا تظهر اهم نافذة واصعبها في التعامل وهي نافذة 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 لإختبار ما اذا كان كل ما ادخلته من بيانات صحيحا ام لا.
سيتم ضبط كل شئ إذا ما كانت البيانات التي ادخلتها صحيحة وتم الاتصال بالفعل بقاعدة البيانات, ويمكنك ان تلقي نظرة على الـ Connection String بالضغط على علامة الـ "+" المجاورة لكلمة Conncetion String
النافذة التالية يسأل فيها عن حفظ الـ Conncection string في ملف الـ Appliction configuration اتركه كما هو.
اما الـ Application Configuration فهي ملف يقرأة البرنامج عند عمله ويوضع فية بعض الثوابت الخاصة بعمل البرنامج مثل الـ connection string.
جميل... طيب ما الفرق بين الحفظ في الـ Application Configuration وحفظ الثابت في إي كلاس Class ؟
من وجهة نظر البرنامج نفسة لا فرق, اما من وجهة نظر المبرمج فهناك فارق كبير. فلأن الـ Application Configuration هي ملف عادي مكتوب بلغة الـ XML مما يعني امكناية تعدبلة من خلال اي محرر نصوص عادي مثل الـ Notepad وبالتالي يمكنك بكل سهولة تغييير ذلك الثابت دون الحاجة إلى إعادة بناء Compile برنامجك من البداية. وهذا الموقف قد يحدث بكثره, فمثلا إفترض ان عنوان خادم قاعدة البيانات قد تغير, فملا عليك وقتها إلا فتح ملف الـ Application Configuration وتعديل الاسم.
النافذة التالية يسأل فيها عن الجداول التي سوف تضمنها في مشروعك, اختر ما تحب ثم اضغط Finish
اما انا فقد اخترت فقط جدول واحد اسمه Data
يظهر الجدول (او الجداول) التي قمت بتضمينها في مشروعك في نافذة Data Sources
ولمن لا تظهر لديه هذه النافذة, اختر Show Data Sources من قائمة Data
إلى هنا تم إضافة قاعدة البيانات إلى المشروع, ولكنها لا تظهر على واجهة البرنامج. الحل .... سحري!!!
فقط اسحب اسم الجدول الذي تريده من نافذة الـ Data Sources والقه على واجهة البرنامج Form فتجد Visual Studio قد وضع كل ما يمكن تخيله من مكونات للتعامل مع الجدول... الم اقل لك... انه موضوع Drag and Drop ليس إلا :D
ابدأ بضبط شكل نافذة استعراض الجدول (تمسي DataGridView ) لكل تصبح واجهة البرنامج محترمة بعض الشئ :P
قم بتشغيل البرنامج بالضغط على ذر F5 من لوحة المفاتيح, لتجد كل شئ قد تم, يمكنك إضافة , تعديل و حذف إى سجل... مممم اعتقد انه لم يتبقي في مشروعي سوى البحث.
سأضيف مربع TextBox وذر Button في الشريط العلوي للبرنامج لعمل إمكانية البحث
أغلق البرنامج ولنعود إلى Visual Studio , اذهب إلى الشريط العلوي لبرنامجك واضغط علية سجد شكل ذر ظهر في أخره, اضغط على ذلك الذر لإضافة مكون جديد إلى الشريط
اختر Button لأضافة ذز, ثم كرر العملية ولكن بالضغط على TextBox لإضافة مربع نص.
غير اسم مربع النص والذر إلى اسماء معبرة (محترمة :D ) وذلك بالضغط على اي منهما وتغيير اسمة من نافذة الخصائص, ثم كرر العملية مع الأخر.
لقد اختر في مشروع اسمي QueryToolStripTextBox و queryToolStripButton لمربع النص والذر على الترتيب. يمكنك اختيار اية اسماء تفضلها.
انظر إلى اسفل نافذة التصميم ولا حظ اسم مكون موضوع بها وهو الـ BindingSource. في مشروع (كما بالصورة) يظهر اسمهة DataBindingSource وذلك لأن اسم الجدول الذي اخترته كان "Data". ربما يكون الاسم الموضوع عندك مختلف تبعا لأسم الجدول الذي ادرجته عندك.
يتبقي ان نكتب كود البحث, اضغط دبل كليك على الذر لتظهر نافذة الكود واكتب فيها الكود التالي مع مراعاة استبدال DataBindingSource بأسم الـ Binding Source الموجود في مشروعك
اضغط F5 لتشغيل برنامجك, تلاحظ خاصية البحث!!! .... وهذا كل شئ