برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

ADO / 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: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 استفاده گردد .

در بخش دوم این مقاله به بررسی نحوه تعریف یک Connection خواهیم پرداخت .
 
 
 
 
 

در این مقاله شما در مورد کار با با پایگاه داده در ASP.NET آشنا خواهید شد. بدین معنا که در صدد هستیم تا رویه ای کلی از مفاهیم، روشها وابزارهای مورد استفاده در ASP.NET جهت برقراری ارتباط با پایگاه داده، نشان دادن داده ها، دستکاری داده ها، بهنگام سازی و... توسط اشیایی چون مهیا کننده های بانک های اطلاعاتی، DataSetها XML، و ... معرفی می شود.

اگر تا بحال با پایگاه داده کار نکرده اید شاید provider یک پایگاه داده برای شما نامفهوم باشـد. بطور خلاصه راهی را که باید طی کرد تا به پایگاه داده متصل شده، آنرا باز کرده و داده ها را دستکاری کرده و دستورات را اجرا نمود، بوسیله یک تهیه کننده اطلاعات مشخص می شود. در ASP.NET معمولا از دو روش برای این کار استفاده می شود. روش اول اینکه اگر پایگاه داده شما از نوع SQL Server باشد بایستی با مدل SQLClient کار کرد و اگر پایگاه داده شما غیر از SQL Server باشد (در حال حاضر) باید از روش دیگر یعنی مدل OleDb استفاده نمود. بعنوان مثال اگر پایگاه داده شما Oracle ،Sybase و یا Access باشد باید از روش OleDb استفاده کنید.

روش کار بدین صورت است که ابتدا بایستی فضانام زیر را در صفحاتی که از بانک اطلاعاتی استفاده می شود فراخوانی کرد:

<% @ Import NameSpace="System.Data" %>
<% @
Import NameSpace="System.Data.OleDb" %>

برای برقراری ارتباط با پایگاه معمولا از عبارت زیر استفاده می شود:

Dim ObjConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; DataSource=e:dbusers.mdb”)

که قسمت DataSource آدرس فایل پایگاه داده است که در اینجا یک بانک Access است. همانگونه که ملاحظه می کنید از رشته ارتباطی یا Connection String بعنوان پارامتر استفاده شده است و بوسیله متد Open ارتباط باز می شود:

objConn.Open()

لازم به توضیح است که در پایان کار بوسیله متد Close ارتباط را خاتمه می دهیم.

بمحض ارتباط با پایگاه داده می توان دستورات را به آن فرستاد. این کار معمولا بوسیله شی OleDbCommand انجام می شود. جهت انجام این کار می توان یک دستور SQL یا نام یک روال ذخیره شده (Stored Procedure) را مشخص نمود و بنا به مقتضیات می توان اعمال مختلفی را روی پایگاه پیاده نمود:

Dim objCommand As New OleDbCommand ( "Select * From users", objConn )

ملاحظه می کنید که کلاس Command از دو پارامتر رشته SQL و نام رشته ارتباطی برای فرستادن دستورات به پایگاه داده استفاده می کند. برای مثال آنچه را که در عبارت فوق دیدید می توان به بخشهای کوچکتر زیر تقسیم کرد.

ابتدا تعریف شی:

Dim objCommand As New OleDbCommand()

سپس نسبت دادن آن به رشته ارتباطی جهت برقراری ارتباط پایگاه:

objCommand.Connection= objConn

مشخص کردن عملیات مورد نظر بوسیله دستورات SQL:

objCommand.CommandText="Select * From Users"

حتی می توانید عملیات فوق را بصورت ذیل انجام دهید:

Dim objCommand As New OleDbCommand( SQL string, Connection string )

روشهای فوق دقیقا یک کار مشابه را انجام می دهند با این اوصاف که در عبارت آخر بجای شئ ارتباطی از یک رشته ارتباطی استفاده شده است. تا این مرحله هنوز عبارات فوق را به اجرا در نیاورده ایم. برای این کار راه های متفاوتی وجود دارد:

- از ExecuteNonQuery زمانی استفاده می شود که قصد برگرداندن داده ها از پایگاه مورد نظر نباشد مثلا در مواقعی که از دستورات SQL جهت درج (Insert) و بهنگام سازی (Update) استفاده شود.

objCommand.ExecuteNonQuery

- از ExecuteReader برای خواندن و برگرداندن اطلاعات از پایگاه استفاده می کنیم.

Dim ObjRead As OleDbDataReader
objRead=objCommand.ExecuteReader

- برای دستکاری یک تک مقدار مشخص و مورد نظر از متد ExecuteScalar استفاده می شود.

برای خواندن داده ها معمولا از کلاس DataReader استفاده می شود -برای خواندن نه برای اضافه کردن یا بروز کردن- این شئ بصورت مستقیم به پایگاه داده دسترسی دارد و فقط خواندنی (Read Only) است. البته این خاصیت محدودیتی برای آن است اما برای خواندن ساده داده روشی کامل بشمار می رود.

Dim objReadaer As OleDbDataReader
objReader=objCommand.ExecuteReader
Whlie objReader.Read
Response.write(objReader.GetString(0)& " <br> " ) 
End While

عبارت فوق جهت نمایش و چاپ داده ها بکار می رود. متد Read خواندن را تا زمانیکه به پایان نتایج نرسد ادامه می دهد و عبارت objReader.GetString(0) برای برگرداندن نسخه رشته ای ستونهای رکورد کاربرد دارد. در لیست زیر چند متد دیگر برای برگرداندن مقادیر داده ای متغیرها آمده است:

GetBoolean(x) مقدار منطقی را بر می گرداند.
GetChar(x) مقدار کاراکتری را برمی گرداند.
Get DataTypeColumn(x) نوع داده را در ستون برمیگرداند.
GetString(x) مقداررشته ای را برمی گرداند.

در این بخش شما به دانسته های بخش اول نیاز دارید. شئ بعدی که مورد بحث قرار می گیرد کلاس Data Adapter است. OleDBDataAdapter اطلاعات را می گیرد و یک ارتباط منطقی بین داده ها و کلاس Dataset ایجاد میکند. بطور کلی میتوان گفت Data Adapter در نظر اول معادل Data Command می باشد. روش استفاده از Data Adapter ها بطور معمول بصورت زیر تعریف می شود:

Dim objAdapter As New OleDBDataAdapter("Select * From Users",objConn)

 

ملاحظه می کنید که شئ Adapter از دو پارامتر- یکی رشته دستورات SQL و دیگری رشته ارتباطی - برای فرستادن دستورات به پایگاه داده استفاده می کند. بطور معمول DataAdapter برای پرکردن DataSetها و بروز کردن پایگاه بوسیله یک DataSet و اجرا کردن دستورات بکار می رود. اکنون نمای کلی از کاربرد فوق را در زیر می بینید:

Dim ds As DataSet = New DataSet()
objAdapter.Fill(ds,"Users")

 

متد Fill جهت اجرای دستور تنظیم شده در Data Adapter بکار می رود. بعبارت دیگر اطلاعات واکشی شده از پایگاه داده در یک جدول با نامی که ما تعیین می کنیم (Users) ذخیره می شود.
نکته ضروری اینست که تکنیک
Mappings در اکثر مواقع کارساز است. Mappings عبارت است از ساختن یک نام مستعار (Alias) برای نام جداول در یک Dataset. این aliasها هیچگونه تاثیری در منبع داده ندارد و وقتی که بوسیله DataAdapter فرستاده می شود بصورت خودکار بنام پیش فرض تبدیل میشود. این تکنیک باعث خوانایی کد و راهنمایی برنامه نویس در ارجاع های بعدی وتشخیص جداول فراخوانی شده میشود.

objAdapter.TableMappings.Add("adbtable","Users")

with objAdapter.tableMapping(0).ColumnMappings

     .Add("PID","ID"

     .Add("LAstName","Lnam"(

     .Add("StreetAddress","Addy"(

End with

objAdapter.Fill(ds

در تکنیک فوق بجای استفاده از عبارت ds.Tables("adbtable") میتوانیم Ds.Tables("Users") را بکار ببریم. در بخشهای آینده دیگر فواید استفاده از Mappings آمده است. همچنین کلاس CommandBuilder برای بهنگام کردن یک بانک که بوسیله Dataset صورت گرفته یک شیوه صحیح بشمار میرود:

Dim cmdBLD As New OleDBCommandBuilder(objAdapter)

 

که در عبارت فوق شئ objAdapter بعنوان پارامتر به دستور CommandBuilder فرستاده شده و سپس بوسیله متد Update منبع داده بهنگام می شود:

objAdapter.Update(ds,"Users")

 

در ادامه، مثال زیر بعنوان جمع بندی مطالب قبلی آمده است. توجه داشته باشید در مثال زیر نتیجه ای بعنوان خروجی در مرورگر نمایش داده نمی شود و فقط از منبع داده ای اطلاعات خوانده شده و یک شئ Dataset پر می شود

 

<%@ Import NameSpace="System.data" %>

<%@ Import NameSpace="System.Data.OleDB" %>

 

<Script Language="VB" Runat="Server">

 

Sub Page_Load( Sender As Object, E As EventArgs)

    Dim objConn As New OleDBConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=e:dbusers.mdb")

 

    objConn.Open()

    Dim ds As DataSet=New DataSet

    Dim objAdapter As New OleDBDataAdapter("Select * From Users",objConn)

    Dim objcmdBLD As New OleDBCommandBuilder(objAdapter)

    Obj.Adapter.Fill(ds,"Users")

End Sub

 

</Script>

 

 

 

 

 

 
مقایسه ADO و ADO.NET
 
 
 

شرکت مایکروسافت در ویژوال بیسیک ورژن 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
Command
Recordset
Parameter
Field
Error
Property
Record
Stream

آبجکت Connection امکان ارتباط با Data Source که شامل بانک اطلاعاتی است را فراهم می‎سازد. بعنوان مثال اگر بخواهیم از آبجکت Recordset برای اضافه و یا حذف و یا تغییر در محتوای رکوردی استفاده کنیم این آبجکت از Connection برای ایجاد ارتباط با بانک اطلاعاتی مثلاً SQL Server استفاده می‎کند اما همانطور که گفته شد و در شکل ملاحظه می‎شود ساختار آبجکتهای ADO بصورت سلسله مراتبی نیست و می‎‎توان مثلا Recordset ای ایجاد نمود که مستقل از آبجکت Connection بتواند با بانک اطلاعاتی ارتباط برقرار نماید.

در ADO علاوه بر آبجکتها، چهار Collection هم دیده می‎شود که عبارتند از :

Parameters
Fields
Properties
Errors

که هرکدام از آنها شامل آبجکتهائی از همان نوع هستند بعنوان مثال ساختاری که برای Recordset کشیده شده بیان کننده آن است که این آبجکت شامل Collection های Fields و Properties بوده و مثلاً Collection مربوط به Fields شامل آبجکتهای فیلد است.

آبجکت فیلد اطلاعاتی را راجع به یک ستون از Recordset در خود نگه داشته است.

در ADO آبجکت Command هم وجود دارد که از آن می‎توان برای اجرای یک فرمان SQL استفاده نمود البته بهترین روش برای اجرای Stored Procedure نیز استفاده از متد Execute مربوط به همین آبجکت است .

بعنوان مثال :

Dim cn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset

cn.Open " Provider = sqloledb ; Data Source=serverName ; Initial Catalog = northwind ", "sa" , "password"
cmd.ActiveConnection = cn
cmd.CommandText = "sp_who"
cmd.CommandType = adCmdStoredProc

Set rs = cmd.Execute
Debug.Print rs(0)
rs.Close

از آبجکت 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.
System.Data.OleDb.
System.Data.Odbc.
System.Data.

اگر بخواهیم از بانکهای 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
OleDBCommand
OledbDataReader
OleDBDataAdapter
SelectCommand
InsertCommand
UpdateCommand
DeleteCommand
DataTable
DataRelation

OleDBConnection آبجکتی است شبیه به آبجکت Connection در ‌ ADO ، که امکان ایجاد ارتباط با بانک را فراهم می‎سازد این آبجکت متدهایی برای اجرای فرامین SQL نیز داراست .OleDBCommand هم مشابه آبجکت Command در ‌ ADO می‎باشد.

از این آبجکت نیز برای اجرای Stored Procedure و اجرای فرامین SQL استفاده می‎شود. آبجکت بعد OledbDataReader است که برای گرفتن اطلاعات از ‌Database استفاده می‎شود. البته لازم به ذکر است Resultset ای که با این روش ساخته می‎شود بصورت ReadOnly و Forwardonly می‎باشد. OleDBDataAdapter آبجکت جدیدی در Ado.net است که خود شامل چهار آبجکت برای انجام فرامین SQL می‎باشد که عبارتند از :

SelectCommand
InsertCommand
UpdateCommand
DeleteCommand

که به ترتیب برای واکشی اطلاعات، اضافه نمودن اطلاعات جدید به داخل بانک ، به هنگام سازی اطلاعات و حذف اطلاعات استفاده می‎شود. این آبجکت به همراه آبجکت Dataset استفاده می‎شود و برای پرکردن Recordset موجود در Dataset بکار می‎رود.

آبجکت بعدی Dataset است که مهمترین آبجکت در Ado.net می‎باشد این آبجکت شامل دو Collection به نام های ‌ DataTables و DataRelations است. همانطور که می‎دانید در ADO هم آبجکت Recordset داشتیم اینجا مجموعه‎ای از Recordset ها در داخل یک DataTables نگه داشته می‎شود و می‎توان بین DataTable های مختلف رابطه نیز ایجاد نمود که این روابط هم داخل یک مجموعه‎ای با نام DataRelations نگه داشته می‎شود. در واقع DataTable در ADO.net معادل همان RecordSet در ADO می‎باشد.

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد