عرض مشاركة واحدة
  #1  
قديم 03-07-2010, 03:05 PM
الصورة الرمزية khaledbelal
khaledbelal khaledbelal غير متواجد حالياً
مبرمج المنتدى
الادارة تكليف لا تشريف
 
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
افتراضي الدرس الواحد والستون ADO.net - دورة .net 2008

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

مقدمة :

ال 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/libr...4k(VS.71).aspx

البدء باستخدام 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

مكونات الفئة System.Data :

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

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

{
string ConnectionString getset; }
int ConnectionTimeout get; }
string Data**** { get; }
ConnectionState State get; }
IDbTransaction BeginTransaction();
IDbTransaction BeginTransaction(IsolationLevel il);
void ChangeData****(string data****Name);
void Close();
IDbCommand CreateCommand();
void Open();

IDbCommand Interface :
يتم منه اشتقاق الفئات الخاصة بالتعامل لاحقاً مع تنفيذ جمل الاستعلام ، يحتوي على الدوال التالية :
كود PHP:
public interface IDbCommand IDisposable
{
string CommandText getset; }
int CommandTimeout getset; }
CommandType CommandType getset; }
IDbConnection Connection getset; }
IDataParameterCollection Parameters get; }
IDbTransaction Transaction getset; }
UpdateRowSource UpdatedRowSource getset; }
void Cancel();
IDbDataParameter CreateParameter();
int ExecuteNonQuery();
IDataReader ExecuteReader();
IDataReader ExecuteReader(CommandBehavior behavior);
object ExecuteScalar();
void Prepare();

IDbDataParameter
تحتوي على :
كود PHP:
public interface IDbDataParameter IDataParameter
{
byte Precision getset; }
byte Scale getset; }
int Size getset; }

IDataParameter :
تحتوي على :
كود PHP:
public interface IDataParameter
{
DbType DbType getset; }
ParameterDirection Direction getset; }
bool IsNullable get; }
string ParameterName getset; }
string SourceColumn getset; }
DataRowVersion SourceVersion getset; }
object Value getset; }

IDbDataAdapter :
كود PHP:
public interface IDbDataAdapter IDataAdapter
{
IDbCommand DeleteCommand getset; }
IDbCommand InsertCommand getset; }
IDbCommand SelectCommand getset; }
IDbCommand UpdateCommand getset; }

IDataAdapter :
كود PHP:
public interface IDataAdapter
{
MissingMappingAction MissingMappingAction getset; }
MissingSchemaAction MissingSchemaAction getset; }
ITableMappingCollection TableMappings get; }
int Fill(System.Data.DataSet dataSet);
DataTable[] FillSchema(DataSet dataSetSchemaType schemaType);
IDataParameter[] GetFillParameters();
int Update(DataSet dataSet);

IDataReader :
كود PHP:
public interface IDataReader IDisposableIDataRecord
{
int Depth get; }
bool IsClosed get; }
int RecordsAffected get; }
void Close();
DataTable GetSchemaTable();
bool NextResult();
bool Read();

IDataRecord :

كود PHP:
public interface IDataRecord
{
int FieldCount get; }
object thisstring name ] { get; }
object thisint i ] { get; }
bool GetBoolean(int i);
byte GetByte(int i);
char GetChar(int i);
DateTime GetDateTime(int i);
Decimal GetDecimal(int i);
float GetFloat(int i);
short GetInt16(int i);
int GetInt32(int i);
long GetInt64(int i);
...
bool IsDBNull(int i);

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


توقيع : khaledbelal



(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}).
سورة الأعراف.

رد مع اقتباس