ارتباط به منابع داده در ADO.NET

از دانشنامه تخصصی کامپیوتر ایران
پرش به: ناوبری، جستجو

ارتباط به منابع داده در ADO.NET

بمنظوراتصال به يک منبع‌داده ، می بايست در ابتدا يک Net Data Provider . ، انتخاب گردد . Data Provider ، کلاس های لازم بمنظور اتصال به يک منبع‌داده ، خواندن اطلاعات ، ويرايش ، بهنگام سازی و انجام عمليات متفاوت بر روی داده ها را ارائه می نمايد . در اين مقاله به تشريح انواع Data Provider پرداخته و با نحوه انتخاب مناسب آنان بمنظور استفاده در برنامه ها ، آشنا خواهيم شد .

NET Data Provider . چيست؟[ویرایش]

NET Data Provider .، يک Component کليدی ارائه شده بهمراه معماری ADO.NET بوده که امکان ارتباط بين يک منبع‌داده و يک Component ، يک سرويس وب XML و يا يک برنامه را فراهم می نمايد. يک NET Data Provider .، امکان اتصال به منبع‌داده ، بازيابی داده ها ، انجام عمليات بر روی داده ها و بهنگام سازی منبع‌داده را فراهم می نمايد. بهمراه فريمورک دات نت ، Provider های زير ارائه شده است :

  • SQL Server .NET Data Provider
  • OLE DB .NET Data Provider

در آينده برای ساير منابع داده ، NET Data Provider . مربوطه ايجاد و در دسترس عموم برنامه نويسان قرار خواهد گرفت. هر Provider ، مسئوليت پياده سازی کلاس های عمومی ADO.NET را برعهده خواهد داشت . دستاورد رويکرد فوق ، ارتباط با منابع داده متفاوت با استفاده از يک روش يکسان از طريق محيط های برنامه نويسی خواهد بود .

کلاس های NET Data Provider .[ویرایش]

ADO.NET ، از NET Data Provider . ، بمنظور ارتباط به منبع‌داده ، بازيابی ، عمليات برروی داده ها و بهنگام سازی منبع‌داده استفاده می نمايد . هر Provider ، بگونه ای طراحی می گردد که دارای حجم اندکی بوده و يک لايه حداقل بين کد های نوشته شده و منبع‌داده را ايجاد نمايند.

فريمورک دات نت ، دارای دو Data Provider است : SQL Server .NET . امکان دستيابی بهينه به SQL Server 2000 و بانک‌های اطلاعاتی SQL Server 7.0 را فراهم می نمايد. بدين منظور می بايست از namespace با نام System.Data.Sqlclient بهمراه برنامه ها، استفاده گردد . Provider فوق، نسبت به OLE DB .NET Data Provider ، دارای کارآئی بمراتب بيشتری است (برای ارتباط با منبع‌داده از لايه های اضافه ديگر نظير: OLE DB و يا ODBC استفاده نمی‌گردد ).

OLE DB .NET . امکان دستيابی به SQL Server 6.5 و يا نسخه های قبل از آن ، بانک های اطلاعاتی نظير اوراکل ، Sybase ، DB2/400 و اکسس ماکروسافت را فراهم می نمايد . بمنظور استفاده از Provider فوق ، می بايست از namespace با نام System.Data.OleDb بهمراه برنامه ها ، استفاده گردد .

علاوه بر موارد فوق ، ماکروسافت در صدد ارائه يک ODBC .NET Data Provider برای دستيابی به ساير منابع داده است . ADO.NET ، از يک مدل شی گراء در رابطه با NET Data Providers . استفاده می نمايد . در SQL Server .NET Data Provider ، اسامی کلاس ها با پيشوند Sql آغاز می گردد . مثلا" کلاس Connection ، SqlConnection ناميده می شود. در OLE DB .NET Data Provider ، اسامی کلاس ها با پيشوند OleDb ، آغاز می گردد . مثلا" کلاس Connection دارای نام OleDbConnection ، می باشد. چهار کلاس اساسی زير، سهم عمده ای در شکل دهی يک NET Data Provider . را برعهده دارند .

  • XxxConnection . کلاس فوق ، بمنظور ايجاد يک Connection به يک منبع‌داده خاص استفاده می گردد . مثلا" کلاس SqlConnection ، باعث اتصال به منابع داده SQL Server ، می گردد .
  • XxxCommand . کلاس فوق ، بمنظور اجرای يک دستور از طريق يک منبع‌داده ، استفاده می گردد . مثلا" کلاس SqlCommand ، امکان اجرای Stored Procedure و عبارات SQL در رابطه با يک منبع‌داده SQL Server ، را فراهم می نمايد .
  • XxxDataReader . از کلاس فوق ، بمنظور خواندن اطلاعات از يک منبع‌داده بصورت فقط خواندنی و Forward-only ، استفاده می گردد . مثلا" کلاس SqlDataReader ، امکان خواندن سطرهائی از جداول در رابطه با يک منبع‌داده SQL Server را فراهم می نمايد . کلاس فوق، بعنوان خروجی متد ExecuteReader از کلاس XxxCommand ، برگردانده می شود.
  • XxxDataAdapter . کلاس فوق ، از اشياء XxxCommand استفاده تا يک DataSet را حاوی داده های مورد نظر نمايد. در اين راستا ، امکان بهنگام سازی اطلاعات نيز فراهم می گردد . مثلا" کلاس SqlDataAdapter ، امکان مديريت ارتباط بين يک Dataset و داده های ذيربط در يک منبع‌داده SQL Server را فراهم می نمايد.

نحوه انتخاب يک Data Provider[ویرایش]

انتخاب يک NET Data Provider . مناسب برای يک برنامه، بستگی به نوع منبع‌داده ئی دارد که قصد ارتباط با آن وجود دارد.

نحوه مراجعه به يک NET Data Provider .[ویرایش]

با استفاده از Solution Explorer در ويژوال استوديو دات نت ، می توان مديريت مراجعات به اسمبلی هائی که مسئوليت NET Data Provider . را بر عهده دارند ، انجام داد . اسمبلی System.Data.dll ( بصورت فيزيکی يک فايل DLL است ) مسئوليت پياده سازی SQL Server .NET Data Provider و OLE DB .NET Data Provider را از طريق Namespace های System.Data.SqlClient و System.Data.OleDb ، بر عهده داشته و اسمبلی System.Data.Odbc.dll چنين رسالتی را در رابطه با ODBC .NET Data Provider ، انجام خواهد داد . اسمبلی فوق ، در زمان نصب ويژوال استوديو دات نت ، نصب نخواهد شد . برای دريافت اسمبلی فوق ، می توان از طريق آدرس : http://msdn.microsoft.com/download ، اقدام و پس از کليک نمودن بر روی NET Framework .، گزينه ODBC .NET Data Provider را انتخاب کرد . بدين ترتيب، زمينه دريافت فايل فوق فراهم می گردد . پس از دريافت اسمبلی فوق ، می توان بصورت دستی (Manaually) در يک پروژه به آن مراجعه و از ODBC .NET Data Provider فوق ، استفاده کرد .

SQL Server .NET Data Provider[ویرایش]

Provider فوق ، لايه ای نازک بين يک برنامه و SQL Server ايجاد می نمايد. با توجه به اينکه اين Provider ، از پروتکل اختصاصی خود ( TDS: Tabular Data Stream ) بمنظور ارتباط با يک سرويس دهنده SQL استفاده می نمايد ، حجم آن اندک و دستيابی به سرويس دهنده SQL مستقيما" و بدون استفاده از لايه های اضافه ديگر ، انجام می گيرد . بدين ترتيب کارائی و قابليت توسعه سيستم ، بهبود پيدا خواهد کرد .

OLE DB .NET Data Provider[ویرایش]

Provider فوق ، بمنظور اتصال به يک منبع‌داده از OLE DB و COM بصورت ذاتی استفاده می نمايد . بنابراين می بايست از يک OLE DB Provider استفاده گردد که خود از OLE DB .NET Data Provider استفاده می نمايد . بمنظور استفاده از OLE DB .NET Data Provider ، می بايست نوع Provider بصورت يک رشته ، مشخص گردد . واژه Provider در رشته فوق بيانگر نوع OLE DB منبع‌داده ئی است که به آن متصل می گرديم . مثلا" "Provider = MSDAORA" ، شما را به يک بانک اطلاعاتی اوراکل متصل می نمايد . در زمانيکه از SQL Server .NET Data Provider ، استفاده می شود ، نيازی به استفاده از واژه Provider نخواهد بود ( فرض می شود که SQL Server 7.0 و يا قبل از آن باشد) . جدول زير نمونه هائی در اين زمينه را نشان می‌دهد :

منبع‌داده مثال
SQL Server 6.5 Provider = SQLOLEDB;Data Source = Tehran ;Initial

Catalog = pubs;User ID = sa ; Password = 999;

Oracle server Provider = MSDAORA ; Data Source = ORACLE817 ; User

ID = OLEDB ; Password = OLEDB ;

Microsoft Access database Provider = Microsoft.Jet.OLEDB.4.0;

Data Source = C:\Mydb\Firstdb.mdb ;

ODBC .NET Data Provider[ویرایش]

Provider فوق ، بمنظور اتصال به يک منبع‌داده از توابع API مربوط به ODBC بصورت ذاتی استفاده می نمايد. اين Provider ، بصورت يک اسمبلی مجزاء و با نام System.Data.Odbc.dll ، پياده سازی شده و بصورت پيش فرض در تمپليت های پروژه در ويژوال استوديو دات نت ، انتخاب نشده و می بايست بصورت دستی به آن مراجعه گردد .

منبع‌داده Provider/Driver مثال
Oracle Server ORA ODBC Driver ={Microsoft ODBC for Oracle };

Server = ORACLE817;UID=OLEDB; PWD = OLEDB;

Microsoft Access database Jet ODBC Driver = {Microsoft Access Driver (*.mdb)};

DBQ = C:\Mydb\Firstdb.mdb ;

خلاصه[ویرایش]

برای انتخاب يک NET Data Provider . ، موارد زير پيشنهاد می گردد :

  • اگر منبع‌داده از نوع SQL Server 7.0 و يا SQL Sever 2000 می باشد ، SQL Server .NET Data Provider انتخاب گردد .
  • اگر منبع‌داده از نوع SQL Server 6.5 و قبل از آن باشد ، OLE DB .NET Data Provider انتخاب گردد .
  • اگر منبع‌داده شامل هر نوع منبع‌داده نامتجانس باشد که امکان دستيابی به آن از طريق OLE DB Provider ، وجود داشته باشد ، از OLE DB .NET Data Provider استفاده گردد .
  • اگر منبع‌داده شامل هر نوع منبع‌داده نامتجانس باشد که امکان دستيابی به آن از طريق ODBC driver ، وجود داشته باشد ،از ODBC .NET Data Provider استفاده گردد .


منبع[ویرایش]

سایت سخاروش (srco.ir)