**أغراض ADO.NET الاساسية **
& ان طريقة الوصول التقليدية إلى البيانات والتي استخدمت تقنية ADO تعتمد على غرض أساسي وحيد هو Recordset، و كان هذا الاسلوب يتلخص في:
- تأسيس اتصال بقاعدة المعطيات باستعمال مزود OLE-DB أو ODBC عبر OLE-DB
- كما أن تنفيذ و تطبيق أوامر على الاتصال المنشأ .
- و تخزين معلومات ضمن غرض RecordSet لاستعادتها.
- كما يمكن لهذا السيناريو أن يجري باستعمال الغرض Command أو عن طريق غرض Connection مباشرةً .
- و لإدراج أو تغيير و تعديل المعلومات يمكن ببساطة تنفيذ عبارة SQL أو إجرائية مخزنة باستخدام الغرض Connection والغرض Command دون استخدام الغرض Recordset.
و يعتمد الوصول إلى البيانات في NET. على نفس الخطوط العريضة ولكن باستخدام مجموعة أخرى من الأغراض.
و قد تبدو هذه الأغراض مشابهة لكنها مختلفة بشكل جذري داخلياً مع اختلاف في الأداء ومرونة أكبر. اذ تعتمد أغراض الوصول إلى البيانات في NET.
على غرضين أساسيين الأول DataReader و الثاني هو DataSet . ينفذ كلا الغرضان العمل الذي كان الغرض Recordset يقوم به.
يكمن الفرق الرئيسي في أن الغرض DataReader يساعد في الوصول إلى البيانات باتجاه واحد وللقراءة فقط.
في حين يوفر الغرض Dataset آلية للتعامل مع أكثر من مجموعة من الصفوف من نفس مصدر البيانات، حيث يمكننا إنشاء غرض DataSet من بيانات موجودة ضمن مصدر البيانات، أو من ملئها بصورة مباشرة صف تلو الآخر باستخدام النص البرمجي.
يحتوي كل جدول ضمن الغرض DataSet على معلومات حول القيم الأصلية للبيانات أثناء عملنا عليها، بحيث يمكن إرسال أي تعديلات على البيانات إلى مخزن البيانات في وقت لاحق.
يحتوي الغرض DataSet يحتوي معلومات تصف محتوي الجداول، كأنماط الأعمدة، القواعد، والمفاتيح . يجب أن نتذكر دائماً أن التركيز في الغرض DataSet هو القدرة على العمل بصورة دقيقة وفعالة في بيئة غير متصلة .
يحافظ الغرض DataSet على محتوياته ويستطيع تحميل معلومات من وثيقة XML الحاوية على بيانات مهيكلة بالتنسيق الصحيح.
**أغراض Connection**
& يشبه هذا الغرض بصورة كبيرة الغرض المستخدم مع ADO و يحوي خصائص مشابهة له. يستخدم هذا الغرض لوصل غرض Command بمخزن البيانات .
- يستخدم الغرض OleDbConnection مع مزود OLE_DB
- يستخدم الغرض SqIConnection ما يسمى TDS مع نظام إدارة قواعد البيانات SQLServer كان من الممكن سابقاً لغرض connection تنفيذ تعليمات SQL على مصدر البيانات أو فتح غرض RecordSet. أما في ASP.NET فهذا غير ممكن.
على كل الأحوال، تؤمن أغراض الاتصال السابقة الوصول إلى المناقلات التي تكون قيد التنفيذ على مخزن بيانات معين.
الطرق الأساسية لأغراض الاتصال:
من أهم الأغراض المستعملة لكل من غرضي الاتصال OIeDbConnect و SqIConnection
الطريقة |
الوصف |
Open
|
تقوم بفتح اتصال إلى مصدر البيانات باستخدام الإعدادات الحالية مثل التي تحدد معلومات الاتصال المطلوب ConnectionString استخدامه. |
CIose
|
تقوم بإغلاق الاتصال الحالي مع مصدر البيانات.
|
BeginTransacTion
|
Transaction تبدأ مناقلة مع مصدر البيانات وتعيد غرض الذي يمكن استخدامه لإتمام أو إلغاء المناقلة.
|
مثال:
**أغراض الأوامر**
& تشبه هذه الأغراض مثيلاتها Command في ADO و تمتلك نفس الخصائص، و تستخدم لوصل غرض Connection مع غرض DataReader و غرض DataAdapter
- يستخدم الغرض OleDCommand مع مزود OLE-DB
- يستخدم الغرض SqICommand مع خدمات البيانات الجدولية في SQLServer
- يسمح الغرض Command بتنفيذ عبارات SQL أو إجرائيات مخزنة على مصدر البيانات. يتضمن هذا إعادة مجموعة صفوف
- (حيث نستخدم للوصول إليها غرض آخر كالغرض DataReader أو كالغرض DataAdapter) أو إعادة قيمة وحيدة، أو إعادة عدد العناصر المتأثرة بالاستعلامات التي لا تعيد مجموعة صفوف الطرق الرئيسية الخاصة بأغراض الأوامر :
الطريقة |
الوصف |
ExecuteNonQuery
|
CommandText,تقوم بتنفيذ الأوامر المعرفة في الخاصة والمرتبطة Connection باستخدام الاتصال المعرف بالخاصة أو Delete' Updateباستعلام لا يعيد أي صفوف (كتعليمة ). تجري إعادة رقم صحيح يعبر عن عدد الصفوف التي lnsert تأثرت بهذا الاستعلام.
|
ExecuteReader |
باستخدام CommandText, تعيد هذه الطريقة مجموعة الصفوف في قاعدة المعطيات بشكل يسمح بالحصول على الصفوف. |
ExecuteScaIar
|
باستخدام ZCommandText, يعيد قيمة وحيدة هي المحدد في الخاصة العمود الأول من السطر الأول من مجموعة الصفوف التي يعيدها الاستعلام، و يتم إهمال جميع القيم الأخرى المعادة. هذه الطريقة سريعة و فعالة عندما يكون المطلوب إعادة قيمة وحيدة فقط.
|
&