الادو نت في برمجة صفحات الويب آي إس بي ADO.NET ASP.NET

الادو نت في برمجة صفحات الويب آي إس بي 

ADO.NET ASP.NET 



الادو نت في برمجة صفحات الويب آي إس بي ADO.NET ASP.NET 

يوفر ADO.NET جسرًا بين عناصر التحكم في النهاية الأمامية وقاعدة بيانات النهاية الخلفية.  تقوم كائنات ADO.NET بتغليف جميع عمليات الوصول إلى البيانات وتتفاعل عناصر التحكم مع هذه الكائنات لعرض البيانات ، وبالتالي تخفي تفاصيل حركة البيانات.

 يوضح الشكل التالي كائنات ADO.NET في لمحة:
ADO.Net objects

The DataSet Class

تمثل مجموعة البيانات مجموعة فرعية من قاعدة البيانات.  ليس لديه اتصال مستمر بقاعدة البيانات.  لتحديث قاعدة البيانات مطلوب إعادة الاتصال.  تحتوي DataSet على كائنات DataTable وكائنات DataRelation.  تمثل كائنات DataRelation العلاقة بين جدولين.

 يعرض الجدول التالي بعض الخصائص المهمة لفئة DataSet:
الخاصيةالوصف
CaseSensitiveيشير إلى ما إذا كانت مقارنات السلسلة داخل جداول البيانات حساسة لحالة الأحرف.
Containerالحصول على الحاوية للمكون.
DataSetNameالحصول على أو تعيين اسم مجموعة البيانات الحالية.
DefaultViewManagerإرجاع عرض للبيانات في مجموعة البيانات.
DesignModeيشير إلى ما إذا كان المكون في وضع التصميم حاليًا.
EnforceConstraintsيشير إلى ما إذا كان يتم اتباع قواعد القيد عند محاولة أي عملية تحديث.
Eventsالحصول على قائمة معالجات الأحداث المرتبطة بهذا المكون.
ExtendedPropertiesالحصول على مجموعة من معلومات المستخدم المخصصة المرتبطة DataSet
.
HasErrorsيشير إلى ما إذا كان هناك أي أخطاء.
IsInitializedيشير إلى ما إذا كان يتم تهيئة DataSet.
Localeالحصول على أو تعيين المعلومات المحلية المستخدمة لمقارنة السلاسل داخل الجدول.
Namespaceالحصول على أو تعيين مساحة اسم DataSet.
Prefixالحصول على بادئة XML أو تعيينها لتعريف مساحة اسم DataSet.
Relationsإرجاع مجموعة كائنات DataRelation.
Tablesإرجاع مجموعة كائنات DataTable.
يعرض الجدول التالي بعض الدوال  المهمة لفئة DataSet:
الدالةالشرح 
AcceptChangesيقبل كل التغييرات التي تم إجراؤها منذ تحميل DataSet أو تم استدعاء هذه الدالة
BeginInitيبدأ تهيئة DataSet.  التهيئة يحدث في وقت التشغيل.
Clearمسح البيانات.
Cloneنسخ بنية DataSet ، بما في ذلك جميع مخططات DataTable والعلاقات والقيود.  لا ينسخ أي بيانات.
Copyنسخ كل من هيكل والبيانات.
CreateDataReader()إرجاع DataTableReader بنتيجة واحدة لكل DataTable ، بنفس التسلسل الذي تظهر به الجداول في مجموعة Tables.
CreateDataReader(DataTable[])إرجاع DataTableReader بنتيجة واحدة لكل DataTable.
EndInitينتهي تهيئة مجموعة البيانات.
Equals(Object)لتحديد ما إذا كان الكائن المحدد يساوي الكائن الحالي
.
Finalizeالموارد الحرة وإجراء عمليات التنظيف الأخرى.
GetChangesتقوم بإرجاع نسخة من DataSet مع كل التغييرات التي تم إجراؤها منذ أن تم تحميلها أو تم استدعاء الأسلوب AcceptChanges
.
GetChanges(DataRowState)الحصول على نسخة من DataSet مع كل التغييرات التي تم إجراؤها منذ أن تم تحميلها أو تم استدعاء الأسلوب AcceptChanges ، تمت تصفيته بواسطة DataRowState.
GetDataSetSchemaالحصول على نسخة من XmlSchemaSet لـ DataSet.
GetObjectDataيملأ كائن معلومات التسلسل بالبيانات اللازمة لإجراء تسلسل DataSet.
GetTypeالحصول على نوع المثيل الحالي.
GetXMLإرجاع تمثيل XML للبيانات.
GetXMLSchemaإرجاع مخطط XSD لتمثيل XML للبيانات.
HasChanges()الحصول على قيمة تشير إلى ما إذا كانت DataSet بها تغييرات ، بما في ذلك الصفوف الجديدة أو المحذوفة أو المعدلة.
HasChanges(DataRowState)الحصول على قيمة تشير إلى ما إذا كانت DataSet بها تغييرات ، بما في ذلك الصفوف الجديدة أو المحذوفة أو المعدلة ، التي تمت تصفيتها بواسطة DataRowState.
IsBinarySerializedتفقد تنسيق التمثيل المتسلسل لـ DataSet.
Load(IDataReader, LoadOption, DataTable[])تعبئة DataSet بقيم من مصدر بيانات باستخدام IDataReader المتوفر ، باستخدام صفيف من مثيلات DataTable لتوفير معلومات المخطط ومساحة الاسم.
Load(IDataReader, LoadOption, String[])تعبئة DataSet بقيم من مصدر بيانات باستخدام IDataReader المتوفر ، باستخدام صفيف من السلاسل لتزويد أسماء الجداول داخل DataSet.
Merge()يدمج البيانات مع البيانات من DataSet آخر.  هذه الطريقة لها أشكال مختلفة مثقلة.
ReadXML()يقرأ مخطط XML والبيانات في DataSet.  هذه الطريقة لها أشكال مختلفة مثقلة.
ReadXMLSchema(0)يقرأ ومخطط XML في DataSet.  هذه الطريقة لها أشكال مختلفة مثقلة.
RejectChangesيسترجع كل التغييرات التي تم إجراؤها منذ آخر مكالمة إلى AcceptChanges.
WriteXML()يكتب مخطط XML وبيانات من DataSet.  هذه الطريقة لها أشكال مختلفة مثقلة.
WriteXMLSchema()يكتب بنية DataSet كمخطط XML.  هذه الطريقة لها أشكال مختلفة مثقلة
.

فئة جدول البيانات The DataTable Class

تمثل فئة DataTable الجداول في قاعدة البيانات.  لديها الخصائص الهامة التالية ؛  معظم هذه الخصائص هي خصائص للقراءة فقط باستثناء خاصية PrimaryKey:
الخاصيةالوصف
ChildRelationsإرجاع مجموعة علاقة بالابن.
Columns.إرجاع مجموعة الأعمدة
Constraintsإرجاع مجموعة القيود.
DataSetإرجاع الأصل DataSet.
DefaultViewإرجاع طريقة عرض الجدول.
ParentRelationsإرجاع مجموعة ParentRelations.
PrimaryKeyالحصول على أو تعيين مجموعة من الأعمدة كمفتاح أساسي للجدول.
Rows.إرجاع مجموعة الصفوف
يعرض الجدول التالي بعض الطرق المهمة للفئة DataTable:

الدالة الوصف 
AcceptChangesيعتمد  كل التغييرات منذ AcceptChanges الماضي
.
Clearمسح جميع البيانات من الجدول.
GetChangesتقوم بإرجاع نسخة من DataTable مع كل التغييرات التي تم إجراؤها منذ استدعاء الأسلوب AcceptChanges
.
GetErrorsإرجاع ومجموعة الصفوف مع الأخطاء.

ImportRowsنسخ صف جديد في الجدول.

LoadDataRowالبحث عن وتحديث صف محدد ، أو إنشاء صف جديد ، إن لم يكن موجودًا.

Mergeيدمج الجدول مع DataTable آخر.
NewRowينشيء DataRow جديدة.

RejectChangesيسترجع كل التغييرات التي تم إجراؤها منذ آخر مكالمة إلى AcceptChanges.

Resetإعادة تعيين الجدول إلى حالته الأصلية.

Selectإرجاع ومجموعة من كائنات DataRow.

فئة بيانات الصف The DataRow Class

يمثل كائن DataRow صفًا في جدول.  له الخصائص المهمة التالية:
الخصائص الوصف
HasErrorsيشير إلى ما إذا كان هناك أي أخطاء.

Itemsالحصول على أو تخزين البيانات المخزنة في عمود معين.

ItemArraysالحصول على أو تعيين جميع القيم للصف.

Tableإرجاع الجدول الأصل.

يعرض الجدول التالي بعض الطرق المهمة للفئة DataRow:
الدوال الوصف 
AcceptChangesتم استدعاء جميع التغييرات التي تمت منذ هذه الطريقة.
  
BeginEditبدء عملية التعديل.

CancelEditيلغي عملية التعديل.

Deleteيحذف DataRow.
EndEditينهي عملية التعديل.

GetChildRowsيحصل الابن الصفوف من هذا الصف.

GetParentRowالحصول على الصف الأصل.

GetParentRowsالحصول على الصفوف الأصل لكائن DataRow.
RejectChangesيسترجع كل التغييرات التي تم إجراؤها منذ آخر مكالمة إلى AcceptChanges.

كائن The DataAdapter Object

يعمل كائن DataAdapter كوسيط بين كائن DataSet وقاعدة البيانات.  يساعد هذا مجموعة البيانات على احتواء بيانات من قواعد بيانات متعددة أو مصدر بيانات آخر.

كائن قاري البيانات The DataReader Object

يعد كائن DataReader بديلاً لمجموعة DataSet و DataAdapter.  يوفر هذا الكائن وصولًا موجهًا إلى سجلات البيانات في قاعدة البيانات.  هذه الكائنات مناسبة للوصول للقراءة فقط ، مثل ملء قائمة ثم قطع الاتصال.

DbCommand and DbConnection Objects

يمثل كائن DbConnection اتصال بمصدر البيانات.  يمكن مشاركة الاتصال بين كائنات الأوامر المختلفة.

 يمثل كائن DbCommand الأمر أو الإجراء المخزن المرسل إلى قاعدة البيانات من استرداد البيانات أو معالجتها.

مثال Example

حتى الآن ، استخدمنا الجداول وقواعد البيانات الموجودة بالفعل في جهاز الكمبيوتر الخاص بنا.  في هذا المثال ، سنقوم بإنشاء جدول وإضافة عمود وصفوف وبيانات إليه وعرض الجدول باستخدام كائن GridView.

 رمز الملف المصدر كما هو محدد:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="createdatabase._Default" %>



 xmlns="http://www.w3.org/1999/xhtml" >

    runat="server">
      </span><span class="pln" style="color: rgb(0, 0, 0);">
         Untitled Page
      </span><span class="tag" style="color: rgb(0, 0, 136);">
   
   
   
      
id="form1" runat="server">
ID="GridView1" runat="server">

The code behind file is as given: الكود البرمجي 
namespace createdatabase
{
   public partial class _Default : System.Web.UI.Page
   {
      protected void Page_Load(object sender, EventArgs e)
      {
         if (!IsPostBack)
         {
            DataSet ds = CreateDataSet();
            GridView1.DataSource = ds.Tables["Student"];
            GridView1.DataBind();
         }
      }
      
      private DataSet CreateDataSet()
      {
         //creating a DataSet object for tables
         DataSet dataset = new DataSet();

         // creating the student table
         DataTable Students = CreateStudentTable();
         dataset.Tables.Add(Students);
         return dataset;
      }
      
      private DataTable CreateStudentTable()
      {
         DataTable Students = new DataTable("Student");

         // adding columns
         AddNewColumn(Students, "System.Int32", "StudentID");
         AddNewColumn(Students, "System.String", "StudentName");
         AddNewColumn(Students, "System.String", "StudentCity");

         // adding rows
         AddNewRow(Students, 1, "M H Kabir", "Kolkata");
         AddNewRow(Students, 1, "Shreya Sharma", "Delhi");
         AddNewRow(Students, 1, "Rini Mukherjee", "Hyderabad");
         AddNewRow(Students, 1, "Sunil Dubey", "Bikaner");
         AddNewRow(Students, 1, "Rajat Mishra", "Patna");

         return Students;
      }

      private void AddNewColumn(DataTable table, string columnType, string  columnName)
      {
         DataColumn column = table.Columns.Add(columnName,  Type.GetType(columnType));
      }

      //adding data into the table
      private void AddNewRow(DataTable table, int id, string name, string city)
      {
         DataRow newrow = table.NewRow();
         newrow["StudentID"] = id;
         newrow["StudentName"] = name;
         newrow["StudentCity"] = city;
         table.Rows.Add(newrow);
      }
   }
}
عند تنفيذ البرنامج ، لاحظ ما يلي:

 ينشئ التطبيق أولاً مجموعة بيانات ويربطها مع عنصر تحكم عرض الشبكة باستخدام طريقة DataBind () لعنصر التحكم GridView.

 الأسلوب Createdataset () هو دالة معرفة من قبل المستخدم ، والتي تقوم بإنشاء كائن DataSet جديد ثم استدعاء أسلوب معرف من قبل مستخدم آخر CreateStudentTable () لإنشاء الجدول وإضافته إلى مجموعة جداول مجموعة البيانات.

 يستدعي الأسلوب CreateStudentTable () أساليب المعرفة من قبل المستخدم AddNewColumn () و AddNewRow () لإنشاء الأعمدة والصفوف من الجدول وكذلك لإضافة بيانات إلى الصفوف.

 عند تنفيذ الصفحة ، تقوم بإرجاع صفوف الجدول كما هو موضح:

ADO.Net Result