عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
ارتباط به منابع داده در ADO.NET ( بخش اول ) |
مديريت وب |
27344 |
81 |
2.2 |
با توجه به جایگاه داده در عصر حاضر و لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و خدمات خود را از طریق سایت www.fabak.ir به مخاطبان محترم عرضه می نماید
 |
ارتباط به منابع داده در 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 های زير ارائه شده است :
در آينده برای ساير
منابع داده ،
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 استفاده گردد .
در بخش دوم اين مقاله
به بررسی نحوه تعريف يک Connection
خواهيم پرداخت .
|