ارتباط به منابع داده در ADO.NET ( بخش اول )

بمنظوراتصال به يک منبع داده ، می بايست در ابتدا يک Net Data Provider . ، انتخاب گردد . Data Provider ، کلاس های لازم بمنظور اتصال به يک منبع داده ، خواندن اطلاعات ، ويرايش ، بهنگام سازی و انجام عمليات متفاوت بر روی داده ها را ارائه می نمايد . در اين مقاله به تشريح انواع Data Provider پرداخته و با نحوه انتخاب مناسب آنان بمنظور استفاده در برنامه ها ، آشنا خواهيم شد .
شنبه، 12 بهمن 1387
تخمین زمان مطالعه:
موارد بیشتر برای شما
ارتباط به منابع داده در ADO.NET ( بخش اول )
ارتباط  به منابع داده در 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 ، برگردانده می شود. ( اغلب بعنوان ماحصل اجرای يک عبارت 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:\Mydb\Firstdb.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:\Mydb\Firstdb.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 استفاده گردد .




نظرات کاربران
ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.
مقالات مرتبط
موارد بیشتر برای شما
مراسم تدفین سیدحسن نصرالله چگونه انجام می‌شود؟
play_arrow
مراسم تدفین سیدحسن نصرالله چگونه انجام می‌شود؟
دستور اژه‌ای در خصوص دستگیری هر چه سریع تر قاتل دانشجوی دانشگاه تهران
play_arrow
دستور اژه‌ای در خصوص دستگیری هر چه سریع تر قاتل دانشجوی دانشگاه تهران
علت عصبانیت مستکبرین از ایران در کلام رهبر انقلاب
play_arrow
علت عصبانیت مستکبرین از ایران در کلام رهبر انقلاب
12 نکته مهم برای سفر در ماه مبارک رمضان
12 نکته مهم برای سفر در ماه مبارک رمضان
رهبرانقلاب: توانایی ما برای مقابله با تهدیدهای سخت در سطح عالی است
play_arrow
رهبرانقلاب: توانایی ما برای مقابله با تهدیدهای سخت در سطح عالی است
بقائی: انتقال اجباری فلسطینیان توطئه‌ای مردود است
play_arrow
بقائی: انتقال اجباری فلسطینیان توطئه‌ای مردود است
پزشکیان: جایگاه علم و دانایی حد و مرزی ندارد
play_arrow
پزشکیان: جایگاه علم و دانایی حد و مرزی ندارد
دستور اکید رئیس قوه قضاییه در خصوص جرایم خشن
play_arrow
دستور اکید رئیس قوه قضاییه در خصوص جرایم خشن
اژه‌ای: قوه قضاییه ناخواسته در ۲ قطبی‌ها نیفتد
play_arrow
اژه‌ای: قوه قضاییه ناخواسته در ۲ قطبی‌ها نیفتد
چهار ویژگی ممتاز مردم آذربایجان شرقی در کلام رهبر انقلاب
play_arrow
چهار ویژگی ممتاز مردم آذربایجان شرقی در کلام رهبر انقلاب
واکنش بقایی به تهدید ایران توسط نتانیاهو
play_arrow
واکنش بقایی به تهدید ایران توسط نتانیاهو
دور زدن ترامپ با خودروی ریاست جمهوری در پیست!
play_arrow
دور زدن ترامپ با خودروی ریاست جمهوری در پیست!
بقایی: ایران مباحث هسته‌ای را با روسیه پیگیری می‌کند
play_arrow
بقایی: ایران مباحث هسته‌ای را با روسیه پیگیری می‌کند
توصیه رهبر انقلاب برای مقابله با تهدید نرم‌افزاری دشمن
play_arrow
توصیه رهبر انقلاب برای مقابله با تهدید نرم‌افزاری دشمن
قیمت هتل الوند مشهد، کیفیت بالا در نزدیکی  مراکز گردشگری مشهد
قیمت هتل الوند مشهد، کیفیت بالا در نزدیکی مراکز گردشگری مشهد