Learning About Computer & Internet
|
|
|
ارتباط به منابع داده در ADO.NET ( بخش اول ) موضوع: ADO جمعه یکم دی 1385 21:33 بمنظوراتصال به يک منبع داده ، مي بايست در ابتدا يک 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 استفاده گردد . در بخش دوم اين مقاله به بررسي نحوه تعريف يک Connection خواهيم پرداخت . نوشته شده توسط هادی قنبری | لینک ثابت |
مقايسه ADO و ADO.NET موضوع: ADO جمعه یکم دی 1385 21:32 شركت مايكروسافت در ويژوال بيسيك ورژن 3 كه در سال 1993 ارائه داد از Jet كه هسته اصلي MS Access بود براي ايجاد ارتباط با بانكهاي اطلاعاتي استفاده نمود البته براي استفاده بهتر برنامه نويسان ، Jet را در غالب مجموعه Object هائي تحت عنوان (Data Access Object ) آورد. در نسخه 4 و 5 ويژوال بيسك ، ماكروسافت روشي ديگر براي ارتباط با بانكهاي اطلاعاتي تحت عنوان (Remote Data Object ) RDO را مطرح ساخت اين روش براي برنامه نويسي Client / Server روش مناسبي بود. در دوم سپتامبر سال 1998 وقتي ماكروسافت ويژوال بيسيك ورژن 6 را ارائه داد روش جديدي تحت عنوان ( Activex Data Object ) ADO را مطرح ساخت در اين روش كه پايه و اساس آن OLEDB بود ماكروسافت بر خلاف DAO و RDO كه ساختاري پيچيده و سلسله مراتبي داشتند، از ساختاري ساده و مجزا ( غير سلسله مراتبي ) استفاده كرد و در واقع ADO هم شامل Object هائي است كه برنامه نويس بتواند از آنها براي ايجاد ارتباط با بانكهاي اطلاعاتي و انجام عمليات روي آنها استفاده كند و در تاريخ 13 February سال 2002 كه ماكروسافت نسخه نهائي Visual Basic.Net را ارائه داده روشي جديد براي كار با بانكهاي اطلاعاتي تحت عنوان ADO.Net را آورده است. اين نسخه از ويژوال بيسيك برخلاف نسخههاي قبل بطور كامل مباحث OOP را پشتيباني ميكند ( FULL OOP ) در واقع ADO.Net هم مانند ADO و RDO و ADO شامل ساختاري براي ارتباط و انجام عمليات روي بانكهاي اطلاعاتي است. ADO.net همانند RDO و DAO و برخلاف ADO داراي ساختار سلسله مراتبي ميباشد. در اين مقاله ميخواهيم به مقايسه ADO و ADO.net بپردازيم. ADO در ورژنهاي مختلفي در اين چند سال اخير به بازار آمده است با آمدن SQL Server 2000 ورژن جديد ADO يعني ورژن 2.6 از اين محصول ارائه شد و اكنون هم ADO 2.6 در سايت ماكروسافت قابل Download ميباشد. آخرين ورژن ADO شامل 9 تا Object است كه عبارتند از : Connection آبجكت Connection امكان ارتباط با Data Source كه شامل بانك اطلاعاتي است را فراهم ميسازد. بعنوان مثال اگر بخواهيم از آبجكت Recordset براي اضافه و يا حذف و يا تغيير در محتواي ركوردي استفاده كنيم اين آبجكت از Connection براي ايجاد ارتباط با بانك اطلاعاتي مثلاً SQL Server استفاده ميكند اما همانطور كه گفته شد و در شكل ملاحظه ميشود ساختار آبجكتهاي ADO بصورت سلسله مراتبي نيست و ميتوان مثلا Recordset اي ايجاد نمود كه مستقل از آبجكت Connection بتواند با بانك اطلاعاتي ارتباط برقرار نمايد.
در ADO علاوه بر آبجكتها، چهار Collection هم ديده ميشود كه عبارتند از : Parameters كه هركدام از آنها شامل آبجكتهائي از همان نوع هستند بعنوان مثال ساختاري كه براي Recordset كشيده شده بيان كننده آن است كه اين آبجكت شامل Collection هاي Fields و Properties بوده و مثلاً Collection مربوط به Fields شامل آبجكتهاي فيلد است. آبجكت فيلد اطلاعاتي را راجع به يك ستون از Recordset در خود نگه داشته است. در ADO آبجكت Command هم وجود دارد كه از آن ميتوان براي اجراي يك فرمان SQL استفاده نمود البته بهترين روش براي اجراي Stored Procedure نيز استفاده از متد Execute مربوط به همين آبجكت است . بعنوان مثال : Dim cn As New ADODB.Connection از آبجكت Parameter هم براي مشخص كردن مقادير پارامترهاي ورودي يك Stored Procedure استفاده ميكنيم. آبجكت Property براي استفاده از Dynamic Property استفاده ميشود كه Property هايي هستند كه وابسته به Provider بوده و استاندارد نيستند . از Record براي دسترسي به يك سطر از Recordset و ويژگيهاي مربوط به آن سطر استفاده ميكنيم .و آبجكت Stream هم به منظور ذخيره و بازيابي اطلاعات بصورت باينري در يك فيلد از Record در نظر گرفته شده است. تا اينجا باساختار ADO آشنا شديم حال به تشريح ADO.net ميپردازيم . ADO.Net مجموعهاي از Class هاي Interface ها و دستوراتي جهت مديريت و كار با بانكهاي اطلاعاتي است. در بحث Net . مجموعهاي از Class هاي مربوط به هم در يك غالب تحت عنوان Name Space ارائه شده است Net. شامل تعدادي Name Space است كه در غالب .Net Framework قرار دارد. تمام ساختار ADO.net در چهار NameSpace قرار دارد كه عبارتند از : System.Data.SqlClient. اگر بخواهيم از بانكهاي SQL Server استفاده كنيم System.Data.SqlClient بهترين انتخاب است در اين NameSpace امكاناتي فراهم شده تا بتوانيم Application هاي بنوسيم و در آنها با SQL Server ارتباط برقرار نمائيم بطوريكه برنامهها از Performance بالائي برخوردار باشند. در صورتي كه كاربر بخواهد از بانكهاي رابطه اي ديگر نظير Oracle استفاده كند ميتواند از System.Data.OleDb بهره گيرد. System.Data.Odbc براي ارتباط با بانكهاي اطلاعاتي از طريق ODBC ميباشد System.Data هم شامل Provider هاي خاص نظير DataSet و DataTable است. ADO.net نيز شامل Object ها و Collection هائي است كه از مهمترين آنها ميتوان موارد ذيل را شمرد: OleDBConnection
OleDBConnection آبجكتي است شبيه به آبجكت Connection در ADO ، كه امكان ايجاد ارتباط با بانك را فراهم ميسازد اين آبجكت متدهايي براي اجراي فرامين SQL نيز داراست .OleDBCommand هم مشابه آبجكت Command در ADO ميباشد. از اين آبجكت نيز براي اجراي Stored Procedure و اجراي فرامين SQL استفاده ميشود. آبجكت بعد OledbDataReader است كه براي گرفتن اطلاعات از Database استفاده ميشود. البته لازم به ذكر است Resultset اي كه با اين روش ساخته ميشود بصورت ReadOnly و Forwardonly ميباشد. OleDBDataAdapter آبجكت جديدي در Ado.net است كه خود شامل چهار آبجكت براي انجام فرامين SQL ميباشد كه عبارتند از : SelectCommand كه به ترتيب براي واكشي اطلاعات، اضافه نمودن اطلاعات جديد به داخل بانك ، به هنگام سازي اطلاعات و حذف اطلاعات استفاده ميشود. اين آبجكت به همراه آبجكت Dataset استفاده ميشود و براي پركردن Recordset موجود در Dataset بكار ميرود.
آبجكت بعدي Dataset است كه مهمترين آبجكت در Ado.net ميباشد اين آبجكت شامل دو Collection به نام هاي DataTables و DataRelations است. همانطور كه ميدانيد در ADO هم آبجكت Recordset داشتيم اينجا مجموعهاي از Recordset ها در داخل يك DataTables نگه داشته ميشود و ميتوان بين DataTable هاي مختلف رابطه نيز ايجاد نمود كه اين روابط هم داخل يك مجموعهاي با نام DataRelations نگه داشته ميشود. در واقع DataTable در ADO.net معادل همان RecordSet در ADO ميباشد. مراجع : 1. VB.NET for Developers , Keith Franklin , SAMS Visual نوشته شده توسط هادی قنبری | لینک ثابت |
|
About
این وبلاگ حاوی مطالبی در مورد برنامه های کاربردی کامپیوتر و آموزش های آن داراست که امید است با مطالعه آن نیاز های نرم افزاری شما برآورده شده باشد و ما را از دعای خیرتان محروم نفرمایید . این وبلاگ در سال 85 در دانشکده فنی شهید رجایی در درس مبانی اینترنت با راهنمایی های آقای آذری تهیه و در دست شما دوستان است.لازم به ذکر است کپی از مطالب این وبلاگ با شرح منبع بلامانع است . یکشنبه 26/9/138 ساعت 8:30 هادی قنبری
Google Searcher
|
Copyright 2006 - Designer: Penguin Network >Hessam Sedaghati