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

18
ADO.NET ﻛﯿﻔﯿﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت وذﻟﻚ ﺑﺄﺳﺘﺨﺪام ﻣﻜﺘﺒﯿﺎتado.net : اوﻻ ﺗﺠﮭﯿﺰ اداة اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت وھﻰ ﻋﺒﺎره ﻋﻦ ﺟﻤﻠﮫ ﻧﺼﯿﮫ ﺗﻜﺘﺐ ﻋﻠﻰ ﺣﺴﺐ ﻧﻮع ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﻤﺴﺘﺨﺪﻣﮫ اذا ﻛﺎﻧﺖ اﻛﺴﯿﺲ او اوراﻛﻞ او ﺳﯿﻜﻮل ﺳﯿﺮﻓﯿﺮ. اﻟﻨﻮع اﻻول ﻣﻦ ﺟﻤﻠﺔ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت وﺗﻜﺘﺐ اذا ﻛﻨﺖ ﺗﻌﻤﻞ ﻋﻠﻰ ﺳﯿﺮﻓﯿﺮ ﻣﺤﻠﻰ واﻟﻤﻘﺼﻮد ﺑﮫ اﻟﺠﮭﺎز اﻟﺬى ﺗﻌﻤﻞ ﻋﻠﯿﮫ وﻟﯿﺲ ﺳﯿﺮﻓﯿﺮ ﻋﻠﻰ اﻟﺸﺒﻜﮫ اﻟﺪوﻟﯿﮫ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﻣﻦ ﺧﻼل اﻻواﻣﺮ وذﻟﻚ ﺑﺎﺳﺘﺨﺪام ﻛﺎﺋﻦ اﻟﻔﺼﯿﻞSqlCommand : ان اﻧﻮع اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﻛﺜﯿﺮه ﺟﺪا ﻟﻜﻦ ﻛﻠﮭﺎ ﺗﻨﺪرج ﺗﺤﺖ ﺻﯿﻐﺔ اﻋﻄﺎء اﻣﺮا ﻣﺎ ﯾﻤﺮر ﻟﻘﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ﺑﺮﻣﺠﯿﺎ ﻋﻦ طﺮﯾﻖ ﻓﺼﯿﻞ ھﻮ اﻟﻤﺴﺌﻮل ﻋﻦ ﺗﻤﺮﯾﺮ اﻻواﻣﺮ ﻟﻘﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت واﺳﺘﺮﺟﺎع اﻟﻨﺘﺎﺋﺞ اﻟﻤﻄﻠﻮﺑﮫ واﻟﺘﻌﺎﻣﻞ ﻣﻊ ھﺬا اﻟﻔﺼﯿﻞ ﻟﺠﻌﻠﮫ ﯾﻨﻔﺬ اﻻواﻣﺮ ﺑﺸﻜﻞ ﺻﺤﯿﺢ ﯾﻜﻮن ﻋﻠﻰ ﻋﺪ ة ﻣﺮاﺣﻞ وھﻰ ﻛﺎﻟﺘﺎﻟﻰ وﻣﻦ اﻟﻤﻤﻜﻦ ﻛﺘﺎﺑﻰ ﺗﻌﺮﯾﻔﺔ اﻻﺗﺼﺎل ﻛﺒﺎراﻣﺘﺮ ﻟﺪاﻟﺔ اﻻﺗﺼﺎل ﻋﻠﻰ ان ﺗﻮﺿﻊ ﻓﻰ ﺷﻜﻞ ﻧﺼﻰ

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

Page 1: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

ADO.NET

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

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

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

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

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

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

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

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

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

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

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

Page 2: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ
Page 3: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

: Poolingمفھوم

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

Page 4: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

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

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

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

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

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

List Box – Combo Box

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

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

Page 5: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

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

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

Page 6: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

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

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

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

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

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

:المثال

Page 7: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

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

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

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

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

Page 8: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

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

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

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

Disconnected Modeالاتصال او

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

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

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

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

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

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

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

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

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

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

Page 9: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

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

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

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

Page 10: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

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

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

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

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

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

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

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

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

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

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

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

1 – Select by Linq

Page 11: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

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

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

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

Page 12: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

2 – Insert By Linq

Object Initialization Expression

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

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

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

Page 13: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

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

lambda Expressionوتعریف

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

Page 14: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

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

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

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

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

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

Page 15: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

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

Page 16: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

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

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

Page 17: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

Insert Statement

Update Statement

Delete statement

Page 18: ADO · 2019. 2. 6. · ADO.NET : ado.net تﺎﯿﺒﺘﻜﻣ ماﺪﺨﺘﺳﺄﺑ ﻚﻟذو تﺎﻧﺎﯿﺒﻟا ﺪﻋاﻮﻗ ﻊﻣ ﻞﻣﺎﻌﺘﻟا ﺔﯿﻔﯿﻛ عﻮﻧ

Sofyany

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

ایمیل السابق

[email protected]

الحالى

[email protected]