Data Provider

يک data provider، مجموعه‌ای از کلاس‌هایی است که اتصال به يک منبع داده مانند SQL Server را اداره و مديريت می‌کنند. دات نت نه تنها براي SQL Server، بلکه براي ديگر منابع داده‌ای داراي data provider هاي متفاوتي می‌باشد. يه عنوان مثال می‌توانید از data provider هاي OLE DB و ODBC براي اتصال به منابع داده‌ای Microsoft Access ،MySql و حتي Oracle استفاده نماييد. در زير تعدادي از data provider هاي پيشنهادي دات نت ذکر شده‌اند :

Provider توضيحات
Sql Server دسترسي به يک ديتابيس SQL Server را ممکن می‌سازد.
OLE DB Provider دسترسي به هر منبع داده‌ای که داراي راه انداز OLE DB است را ممکن می‌سازد، مانند MySQL.
ODBC Provider دسترسي به هر منبع داده‌ای که داراي راه انداز ODBC است را ممکن می‌سازد.

به اين نکته توجه کنيد که provider ديگر، Oracle Provider می‌باشد که مايکروسافت توصيه می‌کند به جاي آن از ODP.NET استفاده شود. هر data provider، داراي کلاس‌های متفاوتي است که شما می‌توانید با استفاده از انها به دیتابیستان دسترسي يابيد. به عنوان مثال data provider مربوط به SQL Server داراي کلاس‌هایی مانند SqlConnection ،SqlCommand ،SqlDataReader و SqlDataAdapter می‌باشد.
data provider مربوط به OLE DB شامل کلاس‌های OleDbConnection ،OleDbCommand ،OleDbDataReader و OleDbDataAdapter می‌باشد. اجزاء data provider هاي مختلف در جدول زير نشان داده شده‌اند :

Data Provider اجزاي Sql Server OLE DB ODBC
Connection SqlConnection OleDbConnection OdbcConnection
Command SqlCommand OleDbCommand OdbcCommand
DataReader SqlDataReader OleDbDataReader OdbcDataReader
DataAdapter SqlDataAdapter OleDbDataAdapter OleDbDataAdapter

هر data provider در فضاي نام مربوط به خود قرار دارد. به عنوان مثال Sql Provider در داخل فضاي نام System.Data.SqlClient و OLE DB provider در داخل فضاي نام System.Data.OleDb قرار دارد.

Data Provider فضاي نام
Sql Server System.Data.SqlClient
OLE DB System.Data.OleDb
ODBC System.Data.Odbc

کلاس‌های موجود در اين فضاهاي نامي يک رابط عمومي را پياده سازي می‌کنند. مثلاً SqlConnection و OleDbConnection هر دو رابط IDbConnection را پياده سازي می‌کنند. اگر به اين رابط توجه کنيد، مشاهده خواهيد کرد که داراي خواص و متدهاي عمومي کلاس Connection براي همه data provider ها می‌باشد.
در درس آينده با مفاهيم بيشتري که با کدهاي کوچک توضيح داده شده‌اند آشنا می‌شوید. همچنين بعد از توضيح اين مفاهيم و کلاس‌ها درباره چکونگي استفاده از آنها در يک برنامه بحث می‌کنیم. لازم نيست که همه کلاس‌ها را حفظ کنيد چون که می‌توانید حتي بخش آموزش کلاس‌ها را رد کرده و وارد بخش ايجاد يک برنامه ADO.NET شويد، سپس عملکرد هر کدام از کلاس‌ها را که متوجه نشديد به عقب برگشته و آن را ياد بگيريد.