ارتباط به منابع داده در 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 ، برگردانده می شود. ( اغلب بعنوان ماحصل اجرای یک عبارت SELECT SQL )

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 و یا قبل از آن باشد) . جدول زیر نمونه هائی در این زمینه را نشان می دهد :

مثال
منبع داده

Provider = SQLOLEDB;Data Source = Tehran ;Initial
Catalog = pubs;User ID = sa ; Password = 999; SQL Server 6.5

Provider = MSDAORA ; Data Source = ORACLE817 ; User
ID = OLEDB ; Password = OLEDB ; Oracle server

Provider = Microsoft.Jet.OLEDB.4.0;
Data Source = C:MydbFirstdb.mdb ;
Microsoft Access database

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

مثال
Provider/Driver
منبع داده

Driver ={Microsoft ODBC for Oracle };
Server = ORACLE817;UID=OLEDB;
PWD = OLEDB; ORA ODBC Oracle Server

Driver = {Microsoft Access Driver (*.mdb)};
DBQ = C:MydbFirstdb.mdb ; Jet ODBC Microsoft Access database

خلاصه :

برای انتخاب یک 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 استفاده گردد .

منبع : http://www.srco.ir

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

اجرا شده توسط: همیار وردپرس