يتفاعل عنصر تحكم مصدر البيانات مع عناصر التحكم المرتبطة بالبيانات ويخفي عملية ربط البيانات المعقدة. هذه هي الأدوات التي توفر البيانات لعناصر التحكم المرتبطة بالبيانات وتدعم تنفيذ العمليات مثل الإدراج والحذف والتحديث.
يحتوي كل عنصر تحكم في مصدر البيانات على موفر بيانات خاص مقترن بقاعدة بيانات أو ملف XML أو فئة مخصصة، ويساعد على:
إدارة الاتصالات
حدد البيانات
إدارة جوانب العرض التقديمي مثل الترحيل والتخزين المؤقت وما إلى ذلك.
التعامل مع البيانات
تتوفر العديد من عناصر التحكم في مصدر البيانات في ASP.NET للحصول على البيانات من خادم SQL أو خادم ODBC أو OLE DB ومن ملفات XML ومن كائنات الأعمال.
بناءً على نوع البيانات، يمكن تقسيم عناصر التحكم هذه إلى فئتين:
التحكم بمصدر البيانات ذو الطبقات
التحكم في مصدر البيانات المستند إلى الجدول
عناصر التحكم في مصدر البيانات للبيانات الهرمية هي:
XMLDataSource - يسمح بربط ملفات وسلاسل XML مع معلومات المخطط أو بدونها.
SiteMapDataSource - يسمح بربط الموفر الذي يوفر معلومات خريطة الموقع.
عناصر التحكم في مصدر البيانات المستخدمة للبيانات الجدولية هي:
التحكم بمصدر البيانات | يصف |
---|---|
SqlDataSource | وهو يمثل اتصالاً بموفر بيانات ADO.NET الذي يقوم بإرجاع بيانات SQL، بما في ذلك مصادر البيانات المتاحة من خلال OLEDB وQDBC. |
ObjectDataSource | فهو يسمح بربط كائن أعمال .Net مخصص يقوم بإرجاع البيانات |
LinqdataSource | يسمح بربط نتائج استعلامات Linq-t0-SQL. (يدعمه فقط ASP.NET 3.5) |
AccessDataSource | وهو يمثل اتصالاً بقاعدة بيانات Microsoft Access. |
عرض مصدر البيانات هو كائن من فئة DataSourceView، والذي يمثل طريقة عرض بيانات مخصصة مصممة لعمليات البيانات المختلفة مثل الفرز والتصفية وما إلى ذلك.
يتم استخدام فئة DataSourceView كفئة أساسية لجميع فئات عرض مصدر البيانات وتحدد أداء التحكم في مصدر البيانات.
يوفر الجدول التالي خصائص فئة DataSourceView:
ملكية | يصف |
---|---|
يمكن حذف | يشير إلى ما إذا كان مسموحًا بحذف مصادر البيانات المحتملة. |
يمكن إدراج | يشير إلى ما إذا كان سيتم السماح بإدراج مصادر البيانات المحتملة. |
CanPage | يشير إلى ما إذا كان الترحيل لمصادر البيانات المحتملة مسموحًا به. |
CanRetrieveTotalRowCount | يشير إلى ما إذا كان يمكن الحصول على معلومات الصف الإجمالي. |
يمكن فرز | يشير إلى ما إذا كان يمكن فرز البيانات. |
يمكن التحديث | يشير إلى ما إذا كان مسموحًا بالتحديثات على مصدر البيانات المحتمل. |
الأحداث | الحصول على قائمة بمعالجات الأحداث التي يمثلها عرض مصدر البيانات. |
اسم | اسم الرأي. |
يوفر الجدول التالي طرق فئة DataSourceView:
طريقة | يصف |
---|---|
يمكن تنفيذه | تحديد ما إذا كان يمكن تنفيذ الأمر المحدد. |
تنفيذ الأمر | قم بتنفيذ الأمر المحدد. |
تنفيذ الحذف | تنفيذ عملية حذف في قائمة البيانات التي يمثلها كائن DataSourceView. |
تنفيذإدراج | تنفيذ عملية إدراج في قائمة البيانات التي يمثلها كائن DataSourceView. |
تنفيذSelect | احصل على قائمة البيانات من مخزن البيانات الأساسي. |
تنفيذ التحديث | تنفيذ عملية تحديث على قائمة البيانات التي يمثلها كائن DataSourceView. |
يمسح | تنفيذ عملية حذف على البيانات المرتبطة بالعرض. |
إدراج | ينفذ عملية إدراج على البيانات المرتبطة بالعرض. |
يختار | إرجاع البيانات التي تم الاستعلام عنها. |
تحديث | ينفذ عملية تحديث على البيانات المرتبطة بطريقة العرض. |
OnDataSourceViewChanged | رفع الحدث DataSourceViewChanged. |
خطأ في رفع القدرات غير المدعومة | يتم استدعاؤه بواسطة أسلوب RaiseUnsupportedCapabilitiesError لمقارنة الإمكانات التي تتطلبها عملية ExecuteSelect مع الإمكانات التي يدعمها العرض. |
يمثل عنصر التحكم SqlDataSource اتصالاً بقاعدة بيانات ذات صلة مثل قاعدة بيانات SQL Server أو Oracle، أو البيانات التي يمكن الوصول إليها عبر OLEDB أو اتصال قاعدة البيانات المفتوحة (ODBC). يتم إكمال اتصال البيانات من خلال خاصيتين مهمتين: ConnectionString وProviderName.
يوفر مقتطف التعليمات البرمجية التالي بناء الجملة الأساسي لعنصر التحكم:
<asp:SqlDataSource runat="server" ID="MySqlSource" ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName %>' ConnectionString='<%$ ConnectionStrings:LocalNWind %>' SelectionCommand= "SELECT * FROM EMPLOYEES" /><asp:GridView ID="GridView1" runat="server" DataSourceID="MySqlSource" />
يعتمد تكوين عمليات البيانات المختلفة على البيانات الأساسية على خصائص مختلفة (مجموعات الخصائص) لعنصر تحكم مصدر البيانات.
يوفر الجدول التالي مجموعة الخصائص ذات الصلة لعنصر التحكم SqlDataSource، والذي يوفر واجهة برمجة عنصر التحكم:
مجموعة السمات | يصف |
---|---|
حذف الأمر، حذف المعلمات، حذف نوع الأمر | الحصول على أو تعيين عبارة SQL والمعلمات ونوع الصفوف المراد حذفها في البيانات الأساسية. |
عامل التصفية، معلمات التصفية | الحصول على سلاسل ومعلمات تصفية البيانات وتعيينها. |
إدراج الأمر، إدراج المعلمات، إدراج أمر نوع | الحصول على أو تعيين عبارة SQL والمعلمات ونوع الصفوف المدرجة في البيانات الأساسية. |
حدد الأمر، حدد المعلمات، حدد نوع الأمر | الحصول على أو تعيين عبارة SQL والمعلمات ونوع الصفوف التي تم استردادها من البيانات الأساسية. |
SortParameterName | الحصول على أو تعيين اسم معلمة الإدخال التي سيتم استخدامها بواسطة إجراء الأمر المخزن لفرز البيانات. |
UpdateCommand، UpdateParameters، UpdateCommandType | الحصول على أو تعيين عبارة SQL والمعلمات ونوع الصفوف المحدثة في البيانات الأساسية. |
يعرض مقتطف التعليمات البرمجية التالي عنصر تحكم مصدر البيانات الذي يمكن استخدامه لتنفيذ عمليات البيانات:
<asp:SqlDataSource runat="server" ID= "MySqlSource" ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName %>' ConnectionString=' <%$ ConnectionStrings:LocalNWind %>' SelectCommand= "SELECT * FROM EMPLOYEES" UpdateCommand= "UPDATE EMPLOYEES SET LASTNAME=@lame" DeleteCommand= "DELETE FROM EMPLOYEES WHERE EMPLOYEEID=@eid" FilterExpression= "EMPLOYEEID > 10"> ..... .....</asp:SqlDataSource>
يمكّن عنصر التحكم ObjectDataSource الفئات المعرفة من قبل المستخدم من توصيل مخرجات أساليبها بعناصر التحكم المرتبطة بالبيانات. واجهة البرمجة لهذه الفئة هي تقريبًا نفس واجهة التحكم SqlDataSource.
فيما يلي جانبان مهمان لربط كائنات العميل:
يجب أن تحتوي الفئة القابلة للربط على مُنشئ افتراضي، وأن تكون عديمة الحالة، ولها طرق يتم تعيينها لتحديد الدلالات وتحديثها وإدراجها وحذفها.
يجب تحديث الكائنات عنصرًا واحدًا في كل مرة، ولا يتم دعم العمليات المجمعة.
دعنا ننتقل مباشرة إلى مثال لاستخدام عنصر التحكم هذا. فئة الطالب هي فئة تستخدم مع كائن مصدر البيانات. يحتوي هذا الفصل على ثلاث سمات: معرف الطالب والاسم والمدينة. يحتوي على مُنشئ افتراضي وطريقة GetStudents لاسترداد البيانات.
فئة الطالب:
public class Student{ public int StudentID { get; set; } public string Name { get; set; } public string City { get; set; } public Student() { } public DataSet GetStudents() { DataSet ds = new DataSet(); DataTable dt = new DataTable("Students"); dt.Columns.Add("StudentID", typeof(System.Int32)); dt.Columns.Add("StudentName", typeof(System.String)); dt.Columns.Add("StudentCity", typeof(System.String)); dt.Rows.Add(new object[] { 1, "MH Kabir", "Calcutta" }); dt.Rows.Add(new object[] { 2, "Ayan J. Sarkar", "Calcutta" }); ds.Tables.Add(dt); return ds; }}
اتبع الخطوات التالية لربط السلك بكائن مصدر البيانات واسترداد البيانات:
إنشاء صفحة ويب جديدة.
قم بإضافة فئة (Student.cs) إلى مشروع Solution Explorer عن طريق النقر بزر الماوس الأيمن فوقه، وإضافة قالب فئة، ووضع الكود أعلاه بداخله.
قم بإنشاء طرق حتى يتمكن التطبيق من استخدام مرجع للفئة.
ضع كائن تحكم مصدر البيانات في نموذج الويب.
تكوين مصدر البيانات عن طريق تحديد الكائن.
اختر طرق البيانات لعمليات البيانات المختلفة. في هذا المثال، هناك طريقة واحدة فقط.
ضع عنصر تحكم مرتبط بالبيانات مثل طريقة عرض الشبكة على الصفحة وحدد كائن مصدر البيانات كمصدر بيانات محتمل.
في هذه المرحلة، يجب أن يبدو عرض التصميم كما يلي:
من خلال تشغيل المشروع، فإنه يسترد السلف المشفر في فصل الطلاب.
يمثل عنصر التحكم AccessDataSource اتصالاً بقاعدة بيانات Access. يعتمد على عنصر التحكم SqlDataSource ويوفر واجهة برمجة أبسط. يوفر مقتطف التعليمات البرمجية التالي بناء الجملة الأساسي لمصدر البيانات:
<asp:AccessDataSource ID="AccessDataSource1 runat="server" DataFile="~/App_Data/ASPDotNetStepByStep.mdb" SelectCommand="SELECT * FROM [DotNetReferences]"></asp:AccessDataSource>
يقوم عنصر التحكم AccessDataSource بفتح قاعدة البيانات في وضع القراءة فقط. ومع ذلك، يمكن استخدامه أيضًا لإجراء عمليات الإدراج أو التحديث أو الحذف. ويتم تحقيق ذلك باستخدام أوامر ADO.NET ومجموعات المعلمات.
تمثل التحديثات مشكلة بالنسبة لقواعد بيانات Access ضمن تطبيقات ASP.NET لأن قاعدة بيانات Access عبارة عن نص عادي وقد يكون لحساب تطبيق ASP.NET الافتراضي أذونات الكتابة لملفات قاعدة البيانات.