ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو...

Post on 24-Feb-2021

3 views 0 download

Transcript of ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو...

ADO.NET

: ado.netكیفیة التعامل مع قواعد البیانات وذلك بأستخدام مكتبیات

اولا تجھیز اداة الاتصال بقاعدة البیانات وھى عباره عن جملھ نصیھ تكتب على حسب نوع

.قاعدة البیانات المستخدمھ اذا كانت اكسیس او اوراكل او سیكول سیرفیر

النوع الاول من جملة الاتصال بقاعدة البیانات وتكتب اذا كنت تعمل على سیرفیر محلى

علیھ ولیس سیرفیر على الشبكھ الدولیھ والمقصود بھ الجھاز الذى تعمل

: SqlCommandالتعامل مع قاعدة البیانات من خلال الاوامر وذلك باستخدام كائن الفصیل

ان انوع التعامل مع قاعدة البیانات كثیره جدا لكن كلھا تندرج تحت صیغة اعطاء امرا ما یمرر لقاعدة

البیانات برمجیا عن طریق فصیل ھو المسئول عن تمریر الاوامر لقاعدة البیانات واسترجاع النتائج

ة مراحل وھى كالتالى المطلوبھ والتعامل مع ھذا الفصیل لجعلھ ینفذ الاوامر بشكل صحیح یكون على عد

ومن الممكن كتابى تعریفة الاتصال كبارامتر

لدالة الاتصال على ان توضع فى شكل نصى

: Poolingمفھوم

ومعناه تحدید عدد المتصلین بجھة اتصال واحده فى نفس الوقت وكیفیة عمل ذلك داخل البرمجھ

:داخل برمجة قواعد البیانات Data Readerقراءة البیانات والتعامل مع

مع قاعدة البیانات بھدف قراءة المحتویات او استرجاع البیانات المطلوبھ ولا Data Readerویتعامل كائن

تقوم بانشاء كائن جدید منھ عند التعامل ھو فقط یحتاج الى تعریف متغیر وینفذ بواسطة كائن

sqlcommand ولنرى المثال التالى:

النقطھ الثانیھ عندما نرید قراءة بیانات عمود واحد او حقل واحد من البیانات فاننا نستخدم اداتى

List Box – Combo Box

وبنفس الكود مع اختلاف وسیلة عرض Authorsولو استخدمنا المثال السابق فى قراءة حقل واحد من جدول

البیانات فانھ غالبا ما یتم استخدام الحلقات فى ذلك

بالاضافھ SQLالنقطھ الثالثھ وھى عملیة ادخال بیانات الى الجدول والتى تكون مختلفھ فقط فى جملة

لنرى مثال و ExcuteNonQueryاعطاء الامر بعدم استرجاع البیانات وانما ادخالھا فقط وھو

وبنفس تنسیق SQLوالامر یكون مختلف فقط عن السابق فى جملة Updateاستخدام امر التحدیث او

الاوامر السابق لكن یجب التحدیث على اساس قیمھ لا تتكرر فى جمیع سجلات الجدول فمثلا نختار

التحدیث على اساس حقل المفتاح الاساسى وھذا ھو الاضمن ولنرى المثال

داخل قاعدة البیانات والاختلاف ایضا عن امر التحدیث ھو فى جملة Deleteاستخدام امر الحذف

SQL ویجب ان یكون الحذف بمعلومیة حقل لا یتكرر على مستوى الجدول ولیكن المفتاح الاساسى

:المثال

ویستخدم فى حالة تنفیذ عدد من العملیات المتتابعھ بفرض انھ یجب Transactionنصل الان الى موضوع ھام وھو

تنفیذھا جمیعا واذا فشلت احداھما لا تنفذ التى تلیھا وھكذا وعادة ما تكون تلك العملیات مرتبطھ مع بعضھا بحیث تقوم

فھ من الجدول او بتنفیذ وظیفھ واحده لكن على مراحل كالاستعلام عن سجل داخل جدول باحد حقولھ استعدادا لحذ

:تحدیثھ مثلا ولنرى مثال

: Connected Modeوما الفرق بینھ وبین Disconnected Modeمفھوم

كل ماسبق برمجتھ كان فى اطار الاتصال المباشر مع قاعدة البیانات اى ان جمیع العملیات السابقھ تنفذ مع استمرار

لكن الوضع الثانى ھو كیفیة استدعاء البیانات فى وضع عدم Connected Modeالاتصال بقاعدة البیانات ویسمى

Disconnected Modeالاتصال او

استخدام الوضع الاول فى حالة العمل على جھاز محلى بقاعدة بیانات واحده تتاح لمستخدم واحد فیفضل ھنا الاتصال

المستمر بقاعدة البیانات

لكن الوضع الثانى یفضل فى حالة وجود شبكة بیانات تتاح لاكثر من مستخدم لادخال البیانات والخلاصھ انك تقوم

بكتابة او تعدیل او حذف ما تریده بیحث یسجل كل ھذا فى جدول وھمى ثم بعد ان تتأكد من كل تلك التعدیلات تقوم

بفتح قاعدة البیانات لتطبق فیھا كل ما تم تغییره

والاخیر ھو عباره عن جدول وھمى Datasetو Data Adapterنوع الثانى یتعامل مع عنصریین اساسین ھما فال

الذى یتم التعامل معھ بعیدا عن قاعدة البیانات او یمثل صوره كاملھ منھا

فى تبادل المعلومات Datasetان یقوم بدور الوسیط بین قاعدة البیانات و Data Adapterوظیفة

:المثال التالى ولنرى

:وعندما ترى تنفیذ البرنامج فیصبح بھذا الشكل

ھذه ھى النتیجھ بعد الاتصال بقاعدة البیانات

یمثل عبىء كبیر فى كتابة الكود لكن یجب العمل بھ اذا كان قاعدة البیانات على Disconnectedان استخدام اسلوب

س الوقتشبكھ تتعامل مع اكثر من مستخدم فى نف

:فى الاستعلامات داخل قاعدة البیانات LINQاستخدام

باختلافات بسیطھ فى طریقة كتابة SQLوھى البدیل عن لغة الاستعلامات 3لغة مبتكره فى الدوت نت الاصداره

الكود لكن تقدم تسھیلات كبیره من ناحیة الاتصال والاستعلام عن البیانات

:التقنیھ خطوات الاستخدام لھذه

DataGrideابدء مشروعك الجدید وقم بوضع ما ترید من ادوات التعامل مع قواعد البیانات ولیكن – 1

تذھب الى نافذة المشروع وتقوم باضافة عنصر جدید وھو – 2

linqوتختار منھا الجدول المطلوب وتضعھ على صفحة Serverتقوم بفتح نافذة – 2

لتلك الاداه بتكوید كل ما یلزم لاستخدام الاداه داخل قاعدة البیانات وداخل الجدول الذى تم تحدیده Designفیقوم ملف

SQLبدیلا عن اوامر Query Expressionاستخدام -

وتستخدم ما یسمى بالمتغیرات مجھولة النوع اى لاتعرف ماھو نوع البیانات الذى یجب ان یستخدم

:ولنرى مثال Anonymous typeوتعرف بأسم

1 – Select by Linq

ماذا لو اردنا اظھار حقول بعینھا دون الاخرى ماذا یكون شكل جملة الاستعلام

:اما اذا اردت وضع شرط للاستعلام فیكون كالتالى

:استخدام جمل الترتیب

2 – Insert By Linq

Object Initialization Expression

لكل جدول من قاعدة البیانات Classلابد عند التعامل مع قواعد البیانات ان تقوم بعمل

تابع لقاعدة البیانات ووضع فیھ كافة الحقول Classفقد بنء بنفسھ LinqClassمن الملاحظ انھ عند استخدام

فمن السھل جدا استدعاء تلك الخصائص والتى تمثل كافة حقول الجدول

:طریقة تحدیث البیانات -

lambda Expressionوتعریف

تستخدم فى عملیة تسھیل الكتابھ بأنشاء تعبیر رمزى یعبر عن الجدول الذى تعمل علیھ ولنرى مثال

الحذف باستخدام نفس التعبیر السابق

التعدیل ثم تاكید التعدیلوسیكون نفس الكود السابق لكن مع تغیر بسیط فى الامر وھو الحذف بدل تاكید

************************************************************************

************************************************************************

:وفیما تستخدم SQLننتقل الان الى التعریف بأھم اوامر -

والترتیب الاساسى ھو التصاعدىوممكن الترتیب بواسطة اكثر من حقل

من الممكن اجتماع الشرط والترتیب فى جملھ واحده

الربط بین اكثر من جدولین

Insert Statement

Update Statement

Delete statement

Sofyany

ھذا الكتاب ضمن سلسلھ من الكتب التى یتم تحملیھا الى موقع الحاسب العربى

ایمیل السابق

Memorycode_84@yahoo.com

الحالى

codacso@yahoo.com