العناصر الاساسية  تقنية ADO.NET

تكملة دروس الدورة الخاصة بربط احد انظمة ادارة قواعد البيانات sql server مع visual studio .

# مراجعة سريعة 

تكلمنا في الدروس السابقة عن مجموعة من المفاهيم ومن هذه المفاهيم :  

مفهوم لغة الاستعلام sql  المهمة جدا لان تعلمها بمثابة تعلم عدة انظمة ادارة قواعد البيانات في آن واحد بسبب دمج شفرات استعلام sql في اغلب الانظمة DBMS التي تم شرحها في دروس سابقه ، 

وايضا عرفنه مفهوم تقنية ADO. NET وتقنية ADO وما هي الاختلافات بينهم 

وعرفنة مفهومين يعتبران هما اساس الدورة هما الوضع المنفصل والمتصل 

وعرفنه خصائص وعيوب كل منهم 

واخر شي عرفنه مكتبات تقنية دوت نت ado.net وبدون هذة المكتبات لا نستطيع الاتصال باي نظام من انظمة ادارة قواعد البيانات dbms.. 

اليوم سنكمل ماتبقى من الدروس الاخيرة للدورة بعد ما تعرفنا سابقا على المفاهيم الاساسية التي هي تعتبر الطريق الصحيح للدخول في برمجة انظمة ادارة قواعد البيانات dbms وربطها مع visual studio بكل سهوله ودون الوقوع في اخطاء ، وبعد الانتهاء من اخر درس الذي يخص اساسيات الدورة سنبرمج مشروعنا بالتفصيل… 

نكمل اليوم الدروس الاخيرة التي تتضمن المواضيع التالية : 

➖ كائنات او محتويات الوضع المتصل والمنفصل .

➖ عناصر الاساسية (تقنية ADO. NET ) للاتصال بانظمة ادارة قواعد البيانات dbms . 

➖ مزود (مزودات)  البيانات .

➖ معلومات مفيدة .

العناصر الاساسية  تقنية  ADO.NET :

نقصد بها الكائنات والأدوات والطرق المزودة والمساعدة في عملية الاتصال للتعامل مع انظمة قواعد ادارة البيانات المختلفة وهي :

 الكائن DataSet 

كائن DataSet من عناصر الوضع المنفصل .

يستخدم هذا الكائن للتعامل مع البيانات بشكل مستقل أي يتم قراءة كل البيانات المطلوبة في الذاكرة ومن ثم يتم قطع الاتصال بقاعدة البيانات، ويبقى عملك محصور ببيانات الـ( Dataset ) المخزنة في الذاكرة اي كل ماتقوم بـ( إضافته، تعديله، حذفه ) ينفذ على البيانات المخزنة في الـ( Dataset ) اي في الذاكرة، 

لايفضل استخدام هذا النوع من المعالجة في حال كانت البيانات المستوردة من قاعدة البيانات إلى الـ( Dataset ) بحجم كبير والسبب أن هذا الحجم سيكون محجوز في الذاكرة مماسيؤدي إلى تخفيض مستوى الذاكرة المتوفرة وتبطيء أداء النظام 

يمكن استخدامه مع أو بدون مزودي البيانات.

تتكون DataSet من مجموعة من الجداول والصفوف والأعمدة والعلاقات. 

أن DataSet تحتوي على مجموعة من DataTables ويحتوي DataTable على مجموعة من DataRows و DataRelations و DataColumns. يتم تعيين DataTable إلى جدول في قاعدة البيانات.

تحتوي مجموعة البيانات السابقة على DataTable الذي يعيّن جدول الطلبات لأنك ملأته باستعلام SELECT المنفذ في جدول الطلبات.

الكائن DataAdapter :

يمثل الجسر الذي يربط بين DataSet وقاعدة البيانات ويدعم أوامر Select - Update - Delete - Insert وبالتالي بإمكانه القيام بعمليات مختلفة على البيانات كما أنه المسؤول عن تحميل

كائن DataSet بالبيانات

 الكائن DataReader

يستخدم هذا الكائن لقراءة البيانات فقط ويمكنه قراءة كميات ضخمه منها مثل تلك البيانات التي لا يمكن خزنها في الذاكرة المؤقتة ، 

او هو كائن ADO.Net الذي يوفر الوصول إلى البيانات من مصدر بيانات محدد. وهو يتألف من فئات تقرأ البيانات بالتسلسل من مصدر بيانات مثل Oracle أو SQL أو Access وغيرها .

الكائن DataRelation : 

يستخدم هذا الكائن لإضافة العلاقات بين الجداولـConnection : 

يعمل هذا الكائن بصورة مشابهة للكائن Connection في ADO وهو يمكننا من إنشاء اتصال مع قاعدة البيانات

الكائن Command : 

يسمح للكائن DataAdapter بتطبيق الأوامر على قاعدة البيانات، ويمكنه أن يتضمن اربعة من هذه الأوامر 

ـ كائن CommandBuilder 

من المعلوم أن الكائن DataAdapter يستخدم كائنات الأوامر

selectCommand ، insertCommand 

updateCommand ، deleteCommand 

 الخاصة لاختيار أو إضافة أو تحديث أو حذف السجلات في قاعدة البيانات ، وحيث أنه يجب على هذه الكائنات استخدام الكائن OleDbParamter  او ( SqlParamter )  لتحديد القيم التي يجب استخدامها لمعالجة قاعدة البيانات ، فإنه ولحسن الحظ لا يتوجب علينا إنشاء تلك الكائنات ( الإضافة أو التحديث أو الحذف وكذلك البارامترات ) بأنفسنا ، وذلك عندما نستخدم الكائن CommandBuilder ( والذي يسمى باني الأوامر ) و القيام بربطه بالكائن DataAdapter ، حيث سوف يتولى هو بإعداد الأوامر اللازمة و البارامترات المناسبة .

هذه اهم العناصر الاساسية التي يمكن من خلالها الاتصال بانظمة ادارة قواعد البيانات dbms المختلفة ، لكن هناك الكثير من الادوات المساعدة في تكوين وبرمجه تطبيقات مع انظمة ادارة قواعد البيانات ، وسنتطرق لها خلال كتابة الاكواد في برمجة مشروعنا في نهاية الدورة…

الفرق بين DataReader و DataSet ؟

ـ DataReader

➖ الأداء أفضل 

➖ لا يمكنه تعديل البيانات 

➖  يدعم الوضع المتصل .  

➖ لديه حق الوصول للقراءة فقط .

➖ لديه وصول أسرع إلى البيانات . 

➖ يجب كتابته يدويًا عند البرمجة لانه لا يحتوي على مؤشرات .  

ـ DataSet 

➖ يوفر اداء اقل

➖ يمكنه تعديل البيانات 

➖ يدعم الوضع المنفصل .  

➖ يمكنة قراءة البيانات وتعديلها .

➖ لديه وصول أبطا إلى البيانات . 

➖ يحتوي الفيجوال على مجموعة ادوات لدعمه (الموشرات)

اهم ما يحتويه الوضع المتصل والمنفصل من كائنات اساسية التي نحتاجها في برمجة مشاريعنا ومشروعنا القادم ان شاء الله 

كائنات  الوضع المتصل 

يحتوي على العناصر الاساسية التاليه للاتصال بانظمة ادارة قواعد البيانات : 

➖ كائن Connection للاتصال بمصادر البيانات 

➖ كائن الاوامر Command لتنفيذ الاوامر 

➖ كائن DataReader يستخدم لقراءة البيانات فقط 

كائنات  الوضع المنفصل 

الوضع المنفصل يحتوي على العناصر الاساسية التاليه : 

➖ كائن Connection للاتصال بقواعد البيانات 

➖ كائن Command تنفيذ الاوامر الناتجة عن جملة الاستعلام او اجراء معين مخزن 

➖ كائن DataReader يستخدم لقراءة السجلات الناتجة من تنفيذ اوامر الاستعلام 

➖ كائن DataAdapter يقوم بحلقة وصل بين مصدر البيانات ومجموعة البيانات Data Set 

➖ مجموعه البيانات Data Set عبارة عن نسخة مصغرة يتم فيها تخزين البيانات في الذاكرة المؤقته للجهاز ويمكننا التعامل معها دون التأثير على مصادر البيانات الاصلية

 بما ان مشروعنا الذي نبرمجة بعد انتهاء الدورة  ربط نظام ادارة قواعد البيانات  sql server بـ visual studio  لابد من ذكر العناصر الاساسية التابعة لـ sql ومن هذه العناصر هي : 

Sql Client 

مزود قواعد بيانات الـ( SQL )

أسماء العناصر التابعة له :

SqlCommand: 

يستخدم لتنفيذ استعلام أو عملية من عمليات ( الإضافة [Insert]، التعديل [Update]، الحذف [Delete] ) أو يمكن تنفيذ إجراء مخزن ( Stored Procedure ) من قاعدة البيانات .

SqlConnection : 

يمثل اتصال الى قاعدة بيانات من الـ( SQL ) .

SqlDataAdapter : 

يمثل جسر بين ( Dataset أو DataTable ) و مصدر بيانات .

SqlDataReader : 

يستخدم هذا الكائن لقراءة سجلات بشكل فردي أي ( كل سجل على حده ) التعامل مع هذا الكائن شبيه بالكائن ( Stream ) وللعلم أن هذا الكائن يقرأ بشكل متسلسل إلى الأمام ولايمكن إعادة قراءة البيانات التي تم قرأتها مسبقاً .

SqlError : 

لاستفسار عن الأخطاء والتحذيرات التي يتعرض أو يصدرها الـ( SQL Server ) .

Provider 

 مزود البيانات والذي بدوره يقوم بالإتصال بمصدر بيانات تابع لمحرك من محركات قواعد البيانات أي  SQL Server, ODBC, MySql, OleDb, Oracle  ليتم معالجة البيانات و  استخدامها

الى  هنا ننتهي من الدروس الخاصة بالمفاهيم الاساسية في برمجة انظمة ادارة قواعد البيانات dbms  وربطها مع visual studio ، والتي كان لابد من التطرق الى هذه المفاهيم من خلال دروس متسلسلة لكي يكون لديكم معلومات جيدة للدخول في برمجة الانظمة المختلفة مع visual studio وبنفس الوقت تقل الأخطاء التي يواجهها الكثير من المبتدئين في برمجة قواعد البيانات والفيجوال  .

انا وضحت المفاهيم الاساسية التي نحتاجها في برمجة مشروعنا وبنفس الوقت هناك الكثير من الادوات المساعدة  في تكوين وانشاء قواعد البيانات dbms وبرمجتها مع visual studio والتي سنتطرق لهذه الادوات ان شاء الله من خلال برمجة وكتابة الاكواد في مشروعنا ... 

‏تذكر أن جهدك يومًا ما سيُثمر!

‏تعلم، تتبع شغفك، تطلع للأفضل .

‏كن فخورًا بذاتك، وأستمر في الكفاح نحو الهدف بغض النظر عن كافة التحديات، انظر لها بنظرة مختلفة وستنجح.

ان شاء الله الدروس القادمة ستكون جانب عملي حول  انشاء قاعدة البيانات sql server وربطها مع visual studio بالتفصيل من خلال برمجة مشروع متكامل يحتوي على الكثير من الشاشات والادوات والتقارير…