شرح الاتصال بقاعدة البيانات

السلام عليكم ورحمة الله وبركاته ,سأحاول شرح موضوع الADO.NET  الخاص بالتعامل مع قواعد البيانات وخصوصا MSSQL  ,
هذه مقدمة بسيطة جدا فى الموضوع ,بحيث يمكنك البناء عليها ,ليس هذا الموضوع كاملا هنا ولكنها صورة عامة.

أولا يجب ان نعرف ان البرامج التى تعتمد على قواعد البيانات تسمى Data Driven Applications  حيث تقوم بعمل واجهة تسمح للمستخدم بعرض البيانات التى يريدها ثم التعديل عليها بالاضافة ,التغيير او الحذف ليتم تنفيذ الامر على قاعدة البيانات ,وADO.NET  احد تلك الوسائل التى توفر لك ذلك .

ADO هو اختصار ل Active Data Object و .Net تعنى النوع الجديد من Active Data Object  تمييزا له عن Classic ADO حيث اصبح هناك Disconnected Mode  وسنعرفه لاحقا ,واصبح هناك دعم ل XML وهناك فروقات أخرى لا مجال لذكرها.

هناك نوعان من الاتصال بقواعد البيانات فى ADO.NET

النظام المتصل :Connected Mode  او Stream Based Access  وهو يعتمد على انك ستتصل بقاعدة البيانات وتظل متصلا بها حتى تقرأ كل البيانات,بيان تلو الآخركأنك تقرأ سطر سطر ,يتم جلب كل صف من قاعدة البيانات واحدا تلو الآخر حتى تقرأ كل الصفوف التى تريدها ثم تغلق الاتصال .

النظام المنفصل :disconnected Mode  او Set Based Access  وهو يعتمد على انك ستتصل بقاعدة البيانات وتقرأ البيانات كلها مرة واحدة Batch Mode  ثم تغلق الاتصال ,اى يختلف عن الاول ان هذا يقرأ بالكمية وليس واحدا تلو الآخر .

ستلاحظ ان هناك تشابه بين الاثنين ,عموما يمكننا الى حد ما تشبيه التعامل مع قواعد البيانات بالاتصال بين صديقين ,احدهما يسأل الآخر عن من الذين اشترك فى الرحلة كما بالصورة .

ADo.Net

اولا ستحتاج اتصال Connection Object يعتمد على ConnectionString  ويمكنك اعتباره بالعنوان الذى ستتصل عليه لتحصل على البيانات .

ثانيا ستحتاج امر Command  لتنفيذه الاستعلام او حتى الامر الذى تريد تنفيذه بقواعد البيانات .

ثم انك ستجد انه لو ان هناك شخص امامه هاتف منزلى وهاتف جوال ,يمكنه الاتصال عن طريق اي منهما لتنفيذ الاستعلام الذى يريده ,اذا عقلا يجب ان يعرف الامر Command  ما الاتصال Connection  الذى سيعمل عليه.

ثالثا ستحتاج فتح الاتصال ,سواء يدويا او بواسطة ما ,هل يمكن ان تتحدث عبر الهاتف بدون فتح الاتصال؟

رابعا ستحتاج تنفيذ الامر الذى تريده ,ما الفائدة اذا اتصلت بصاحبك لتسأل عليه عبر الهاتف ثم عند فتح الاتصال لم تتحدث؟ يجب عليك ان تنفذ الامر .

خامسا ستحتاج غلق الاتصال ,فهذا سيوفر موارد كثيرة سأذكرها فيما بعد .

وهذه الامور الخمسة ستحتاجها فى النوعين .

نأتى هنا على النوع الاول النوع المتصل (معذرة ولكنى اعتبره غير مهم ).

هذا النوع يعتمد على DataReader  اى قارىء البيانات ,عيوب هذا القارىء هو انه لا يخزن البيانات فى نفسه ,اى انه عندما يأتى بالبيانات صفا تلو الآخر ,يجب ان تأخذ منه البيانات وتخزنها يدويا والا فانه يتوجب عليه اعادة الاتصال من جديد وقراءة البيانات من جديد ,لذلك فهو يعمل فى اتجاه واحد .

سأعطى مثال على كيفية ملىء ComboBox  بواسطة DataReader من خلال قاعدة بيانات NorthWind  الموجودة ب SQL Server

اولا سنحتاج لعمل كائن Object  من Connection Class  ,ونلاحظ اننا عندنا اربعة انواع من Connection Classes

اولا SqlConnection  وكما هو ظاهر بالاسم ,فانه خاص بالتعامل مع قاعدة بيانات ميكروسوفت اس كيو ال ,الاصدار السابع فما فوق ,ويمتاز بانه Managed Code  اى يعمل ضمن محرك الدوت نت CLR .

هناك ايضا OracleConnection ,OledbConnection,ODBCConnection,لا مجال هنا للاستفاضة .

اذا ما هو الكود ؟
500

اما النظام المنفصل ,فهناك DataAdapter يقرأ البيانات فى كائن Dataset  كاملة ,يمكنك ان تعتبر هذه الداتاست هى لقطة Snapshot من قاعدة البيانات ,وهى الى حد ما قاعدة بيانات صغيرة,حيث يمكنك ان تضع بها جداول وتجعل بينها علاقات Relations  ,تعتبر هذه البيانات Cashed من البيانات التى فى قاعدة البيانات ,والتى قد يحدث تعديل عليها اثناء قيامك بعرض البيانات من الداتاست ,فأى تغيير فى قاعدة البيانات لن ينعكس الداتاست اثناء العرض ,الا اذا قررت الاتصال بقاعدة البيانات من جديد وعمل جلب للبيانات من جديد.

ولننظر الى الكود
dataset

ملحوظة :اولا هذه الاكواد تفهم ولا تحفظ,ثانيا يمكن كتابتها بأكثر من طريقة ,ولكنى اخترت اسهل طريقة ,نلاحظ ايضا سهولة تحديد DisplayMember  و ال ValueMember  للComboBox فى حالة الداتاست .

حول أحمد حسان
Senior IT Specialist @ German Hospital of Alexandria ,Co-Developed Medxpress ,Hospital ERP system ,Microsoft Certified Solution Developer

2 Responses to شرح الاتصال بقاعدة البيانات

  1. عبدالعزيز موسى says:

    موضوع ممتاز بارك الله فيك

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: