تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الواحد والستون ADO.net
#1
كاتب الموضوع : أحمد جمال

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

مقدمة :

ال ADO.net او ما تعرف اختصاراً باسم Active Data Object.net هي امتداد للنسخة القديمة ADO التي كانت موجودة في اصدارات فيجوال بيسك 6 من مايكروسوفت ، وهي امتداد ايضاً لعالم مزودات البيانات او Data Providers التي مرت بمراحل تطور عديدة وشهدت العديد من التقنيات مثل DAO, RDO .

وعلى عكس النسخة القديمة ADO التي كانت مخصصة لفتح اتصال بين قاعدة البيانات والبرنامج او بين الخادم والعميل Client/Server فإن ADO.net اصبحت مزودة بخدمة disconnected بحيث لن تصبح مضطراً للاتصال دائماً بقاعدة البيانات هناك فروقات أخرى هذا موجزها :

- الدعم الكامل ل XML .
- زيادة أنواع البيانات المعتمدة والدوال المستخدمة .
- زيادة السرعة .
- انها اصبحت managed code بالكامل .

يمكنك الاطلاع على مزيد من التفاصيل حول الفروقات هنا :
http://msdn.microsoft.com/en-us/library/904fck4k(VS.71).aspx

يتبع ...
}}}
تم الشكر بواسطة:
#2
البدء باستخدام ADO.net :

فقط كل ما عليك هو استيراد المكتبات الخاصة بها ، تجدها جميعاً تحت اسم System.Data ، بعدها سيكون عليك تقرير فيما إذا كنت ترغب في العمل من خلال الوضع Connected أو Disconnected ، في حالة الأولى ستكون على اتصال دائم بقاعدة البيانات اما الحالة الثانية فستتصل على مراحل لتجلب البيانات او لتقوم ببعض التعديلات الجماعية ، في بداية دروسناً لن نتعامل سوى مع Connected فيما سنعود لاحقاً للوضع الآخر .

مكونات ADO.net Data Provider :
Connection : يمكنك من انشاء اتصالك بقاعدة البيانات .
Command : تمكنك من تنفيذ جملة استعلام SQL على قاعدة البيانات .
DataReader DbDataReader IDataReader : تمكنك من قراءة البيانات الناتجة عن عملية استعلام على سبيل المثال ، لكن الناتج سيكون للقراءة فقط وفي اتجاه واحد فقط .
DataAdapter DbDataAdapter IDataAdapter : تمكنك على الحصول على صورة من البيانات المطلوبة سواء جدول او جملة استعلام وتمكنك من التنقل بينها وعمل اضافة وتعديل وحذف وخلافه .
Parameter DbParameter IDataParameter: خاصة بتمرير متغيرات إلى جمل الاستعلام .

ال Data Providers المدعومة من قبل مايكروسوفت :
System.Data.OleDb :
يمكن استخدامها للتعامل مع اي نوع من قواعد البيانات ، لكن لو كان لقاعدة البيانات مزود آخر موجود في القائمة يفضل استخدامه نظراً لإن هذا النوع هو الأبطأ .
System.Data.SqlClient :
يفضل دوماً استخدامها للتعامل مع قواعد البيانات SQL Server حيث انها تحتوي على مجموعة من المهام الخاصة بالتعامل مع هذا النوع من قواعد البيانات .
System.Data.SqlServerCe :
يفضل استخدامها في حالة التعامل مع قاعدة بيانات SQL Server CE الخاصة بالتعامل مع ال Pocket PC .
System.Data.Odbc :
اي ملف Odbc يمكن التعامل معه من خلالها .
System.Data.OracleClient
يفضل التعامل مع قواعد البيانات أوراكل من خلالها .

التعامل مع مزودات خدمة أخرى Third-Party ADO.NET Data Providers :
في الفقرة السابقة ذكرنا مزودات لقواعد البيانات الرئيسية ، ولكن ماذا عن قواعد البيانات MYSQL أو FoxPro أو DB2 مثلاً ؟
هل سنضطر في النهاية لاستخدام OleDb ذات السرعة الأبطأ والامكانيات المحدودة نسبياً ؟

لا طبعاً ، قامت اغلب الشركات بتطويرData Providers لمنتجاتها خاصة ب ADO.net أو حتى شركات تقدم مزودات معتمدة من الشركات الأصلية تتمتع بسرعة اكبر ومميزات وخدمات اضافية ، هذا الرابط مثال عليها :
http://www.sqlsummit.com/dataprov.htm
}}}
تم الشكر بواسطة:
#3
مكونات الفئة System.Data :

تحتوي هذه الفئة على كل ما يخص قواعد البيانات والتعامل معها من دوال وخصائص وحتى رسائل الأخطاء exceptions ، سنستعرض هنا سريعاً أهم محتويات هذه الفئة حيث ستفيدنا في التعرف على خصائصها :

IDbConnection Interface :
منه يتم اشتقاق الفئة الخاصة بالاتصال بقاعدة البيانات ، يحتوي على الدوال التالية :

كود :
public interface IDbConnection : IDisposable

كود :
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]string ConnectionString { get; set; }[/FONT]
[FONT=Tahoma]int ConnectionTimeout { get; }[/FONT]
[FONT=Tahoma]string Database { get; }[/FONT]
[FONT=Tahoma]ConnectionState State { get; }[/FONT]
[FONT=Tahoma]IDbTransaction BeginTransaction();[/FONT]
[FONT=Tahoma]IDbTransaction BeginTransaction(IsolationLevel il);[/FONT]
[FONT=Tahoma]void ChangeDatabase(string databaseName);[/FONT]
[FONT=Tahoma]void Close();[/FONT]
[FONT=Tahoma]IDbCommand CreateCommand();[/FONT]
[FONT=Tahoma]void Open();[/FONT]
[FONT=Tahoma]}[/FONT]

IDbCommand Interface :
يتم منه اشتقاق الفئات الخاصة بالتعامل لاحقاً مع تنفيذ جمل الاستعلام ، يحتوي على الدوال التالية :

كود :
[FONT=Tahoma]public interface IDbCommand : IDisposable[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]string CommandText { get; set; }[/FONT]
[FONT=Tahoma]int CommandTimeout { get; set; }[/FONT]
[FONT=Tahoma]CommandType CommandType { get; set; }[/FONT]
[FONT=Tahoma]IDbConnection Connection { get; set; }[/FONT]
[FONT=Tahoma]IDataParameterCollection Parameters { get; }[/FONT]
[FONT=Tahoma]IDbTransaction Transaction { get; set; }[/FONT]
[FONT=Tahoma]UpdateRowSource UpdatedRowSource { get; set; }[/FONT]
[FONT=Tahoma]void Cancel();[/FONT]
[FONT=Tahoma]IDbDataParameter CreateParameter();[/FONT]
[FONT=Tahoma]int ExecuteNonQuery();[/FONT]
[FONT=Tahoma]IDataReader ExecuteReader();[/FONT]
[FONT=Tahoma]IDataReader ExecuteReader(CommandBehavior behavior);[/FONT]
[FONT=Tahoma]object ExecuteScalar();[/FONT]
[FONT=Tahoma]void Prepare();[/FONT]
[FONT=Tahoma]}[/FONT]


IDbDataParameter
تحتوي على :

كود :
[FONT=Tahoma]public interface IDbDataParameter : IDataParameter[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]byte Precision { get; set; }[/FONT]
[FONT=Tahoma]byte Scale { get; set; }[/FONT]
[FONT=Tahoma]int Size { get; set; }[/FONT]
[FONT=Tahoma]}[/FONT]

IDataParameter :
تحتوي على :

كود :
[FONT=Tahoma]public interface IDataParameter[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]DbType DbType { get; set; }[/FONT]
[FONT=Tahoma]ParameterDirection Direction { get; set; }[/FONT]
[FONT=Tahoma]bool IsNullable { get; }[/FONT]
[FONT=Tahoma]string ParameterName { get; set; }[/FONT]
[FONT=Tahoma]string SourceColumn { get; set; }[/FONT]
[FONT=Tahoma]DataRowVersion SourceVersion { get; set; }[/FONT]
[FONT=Tahoma]object Value { get; set; }[/FONT]
[FONT=Tahoma]}[/FONT]

IDbDataAdapter :

كود :
[FONT=Tahoma]public interface IDbDataAdapter : IDataAdapter[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]IDbCommand DeleteCommand { get; set; }[/FONT]
[FONT=Tahoma]IDbCommand InsertCommand { get; set; }[/FONT]
[FONT=Tahoma]IDbCommand SelectCommand { get; set; }[/FONT]
[FONT=Tahoma]IDbCommand UpdateCommand { get; set; }[/FONT]
[FONT=Tahoma]}[/FONT]

IDataAdapter :

كود :
[FONT=Tahoma]public interface IDataAdapter[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]MissingMappingAction MissingMappingAction { get; set; }[/FONT]
[FONT=Tahoma]MissingSchemaAction MissingSchemaAction { get; set; }[/FONT]
[FONT=Tahoma]ITableMappingCollection TableMappings { get; }[/FONT]
[FONT=Tahoma]int Fill(System.Data.DataSet dataSet);[/FONT]
[FONT=Tahoma]DataTable[] FillSchema(DataSet dataSet, SchemaType schemaType);[/FONT]
[FONT=Tahoma]IDataParameter[] GetFillParameters();[/FONT]
[FONT=Tahoma]int Update(DataSet dataSet);[/FONT]
[FONT=Tahoma]}[/FONT]


IDataReader :

كود :
[FONT=Tahoma]public interface IDataReader : IDisposable, IDataRecord[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]int Depth { get; }[/FONT]
[FONT=Tahoma]bool IsClosed { get; }[/FONT]
[FONT=Tahoma]int RecordsAffected { get; }[/FONT]
[FONT=Tahoma]void Close();[/FONT]
[FONT=Tahoma]DataTable GetSchemaTable();[/FONT]
[FONT=Tahoma]bool NextResult();[/FONT]
[FONT=Tahoma]bool Read();[/FONT]
[FONT=Tahoma]}[/FONT]


IDataRecord :

كود :
[FONT=Tahoma]public interface IDataRecord[/FONT]
[FONT=Tahoma]{[/FONT]
[FONT=Tahoma]int FieldCount { get; }[/FONT]
[FONT=Tahoma]object this[ string name ] { get; }[/FONT]
[FONT=Tahoma]object this[ int i ] { get; }[/FONT]
[FONT=Tahoma]bool GetBoolean(int i);[/FONT]
[FONT=Tahoma]byte GetByte(int i);[/FONT]
[FONT=Tahoma]char GetChar(int i);[/FONT]
[FONT=Tahoma]DateTime GetDateTime(int i);[/FONT]
[FONT=Tahoma]Decimal GetDecimal(int i);[/FONT]
[FONT=Tahoma]float GetFloat(int i);[/FONT]
[FONT=Tahoma]short GetInt16(int i);[/FONT]
[FONT=Tahoma]int GetInt32(int i);[/FONT]
[FONT=Tahoma]long GetInt64(int i);[/FONT]
[FONT=Tahoma]...[/FONT]
[FONT=Tahoma]bool IsDBNull(int i);[/FONT]
[FONT=Tahoma]}[/FONT]


نكمل في الدرس القادم مع البدء باضافة قواعد بيانات إلى تطبيقاتنا ...
}}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم