با تشكر از شركت سخا روش
با استفاده از ADO.NET ، امکان اتصال به منابع داده متفاوت ، بازيابی ، پردازش و بهنگام سازی داده ، فراهم می گردد . ADO.NET از XML به منظور انتقال داده بين برنامه ها و منابع داده استفاده می نمايد .ويژوال استوديو دات نت دارای امکانات متعددی به منظور دستيابی به بانک های اطلاعاتی (برخاسته از ADO.NET ) ، می باشد. پس از اتصال به يک بانک اطلاعاتی می توان با استفاده از مجموعه ای از اشياء ، خصلت ها و متدها ، صرفنظر از نوع بانک اطلاعاتی ، عمليات مورد نظر خود در ارتباط با يک بانک اطلاعاتی را انجام داد. در اين مقاله به بررسی امکانات ويژوال استوديو دات نت به منظور اتصال به يک بانک اطلاعاتی و انجام عمليات متفاوتی همچون خواندن ، تغيير و حذف رکوردهای موجود در يک بانک اطلاعاتی ، خواهيم پرداخت .
مبانی اوليه ADO.NET
به منظور دستيابی به داده در ADO.NET ، سه لايه وجود دارد :
-
محل فيزيکی ذخيره سازی داده : لايه فوق می تواند يک بانک اطلاعاتی OLE ، يک بانک اطلاعاتی SQL و يا يک فايل XML باشد .
-
ارائه دهنده داده : لايه فوق ، شامل شی Connection و اشياء Command بوده و تصويری از داده ها را در حافظه ايجاد می نمايد.
-
Data set : لايه فوق ، رکوردهای بازيابی شده از يک منبع داده را در خود نگهداری می نمايد. يک Data Set شامل رکوردهائی از يک و يا چندين جدول می باشد .

لايه ارائه دهنده داده ، واسطه بين محل ذخيره سازی داده و Data Set ، می باشد .Data Set مستقل از منبع داده است .
در ADO.NET از دو نوع Connection به منظور اتصال به يک بانک اطلاعاتی ( با توجه به نوع بانک اطلاعاتی ) استفاده می گردد :
-
شی OleDbConnection که از آن به منظور ارتباط به يک بانک اطلاعاتی محلی استفاده می گردد. اين نوع ارتباطات از شی OleDbDataAdapter به منظور اجرای دستورات و برگرداندن داده استفاده می نمايند .
-
شی SqlDbConnection که از آن به منظورارتباط به يک بانک اطلاعاتی سرويس دهنده ، استفاده می گردد.اين نوع ارتباطات از شی SqlDbDataAdapter به منظور اجرای دستورات و برگرداندن داده استفاده می نمايند .
علاوه بر موارد فوق ، امکان دستيابی مستقيم به فايل های XML با استفاده از متدهای ReadXML و WriteXML مربوط به شی DataSet ، نيز وجود دارد.
اشياء ، خصلت ها و متدهای حمايت شده توسط ADO.NET توسط سه namespace ارائه می گردد :
-
System.Data : در اين namespace کلاس ها ، نوع ها و سرويس های لازم به منظور ايجاد و دستيابی به data set و اشياء زير مجموعه آن وجود دارد .
-
System.Data.SqlClient : در اين namespace کلاس ها و نوع های لازم به منظور دستيابی به بانک های اطلاعاتی SQL Server ، وجود دارد.
-
System.Data.OleDb : در اين namespace کلاس ها و نوع های لازم به منظور دستيابی به بانک های اطلاعاتی OLE ، وجود دارد .
در زمان دستيابی و استفاده از بانک های اطلاعاتی ( از طريق کد نوشته شده ) ، می بايست از عبارت Imports در ابتدای ماژول استفاده گردد .
|
VB.NET
|
|
Imports System.Data
Imports System.Data.SqlClient 'For SQL database Connection
Imports System.Data.OleDb 'For OLE DB database Connection
|
به منظور دستيابی داده از طريق ADO.NET ، مراحل زير را دنبال می نمائيم :
-
ايجاد ارتباط با بانک اطلاعاتی توسط يک شی Connection
-
فراخوانی يک command به منظور ايجاد يک Dataset با استفاده از يک شی adapter
-
استفاده از شی DataSet (در کد نوشته شده ) ، به منظورنمايش داده و يا تغيير آيتم های موجود در بانک اطلاعاتی
-
فراخوانی يک Command به منظور بهنگام سازی بانک اطلاعاتی از طريق DataSet با استفاده از يک شی adapter
-
غير فعال نمودن ( Close ) ارتباط ايجاد شده با بانک اطلاعاتی در صورتيکه ارتباط با بانک اطلاعاتی توسط متد Open فعال شده باشد .
در ادامه به تشريح هر يک از مراحل فوق خواهيم پرداخت .
ارتباط با بانک اطلاعاتی
با استفاده از Server Explorer در ويژوال استوديو دات نت ، امکان ايجاد يک ارتباط با بانک اطلاعاتی فراهم می گردد. در اين رابطه مراحل زير را دنبال می نمائيم (در حالت Design ) :
-
فعال نمودن Server Explorer ( از طريق View|Server Explorer )
-
در Server Explorer ، گزينه Connect To Database را انتخاب می نمائيم .در ادامه جعبه محاوره ای DataLink Properties نمايش داده می شود.


-
از طريق Provider Tab ، نوع بانک اطلاعاتی را مشخص می نمائيم . به صورت پيش فرض ، OLE DB Provider for SQL Server انتخاب شده است . در صورتيکه بانک اطلاعاتی تحت SQL Server اجراء می گردد ، انتخاب پيش فرض درست می باشد . به منظور دستيابی به يک نوع ديگر بانک اطلاعاتی ، می بايست Provider مربوطه را انتخاب نمود. مثلا" برای دستيابی به يک بانک اطلاعاتی اکسس ، Micosoft Jet 4.0 OLE DB انتخاب می گردد .
-
از طريق Connection Tab ، بانک اطلاعاتی مورد نظری که قصد برقراری ارتباط با آن وجود دارد را انتخاب می نمائيم
-
پس از اعمال تنظيمات لازم با کليک نمودن بر روی دکمه Test Connection ، می توان از صحت تنظيمات انجام شده ، اطمينان حاصل نمود .پس از تست موفقيت آميز ارتباط ايجاد شده با بانک اطلاعاتی ، ويژوال استوديو دات نت ، ارتباط ايجاد شده را به Server Explorer اضافه می نمايد .
-
با کليک نمودن بر روی علامت "+" ، آيتم های مربوط به بانک اطلاعاتی نمايش داده خواهند شد . برای مشاهده جداول ، می توان آيتم های مربوطه را تحت Data Connection فعال و در ادامه از طريق Table و فعال نمودن آن ، جداول مربوط به بانک اطلاعاتی را مشاهده نمود.

-
برای افزودن يک آيتم به برنامه ، از طريق Sever Explorer آن را انتخاب و بر روی فرم وب قرار می دهيم . در مواردی که يک جدول بر روی فرم وب مستقر می گردد ، ويژوال استوديو دات نت ، اشياء Connection و adapter را به همراه تنظيمات مناسب ، ايجاد می نمايد.

ايجاد يک Data Set
با استفاده از اشياء Connection و Adapter ( ايجاد شده در بخش قبل )، می توان يک Data set را ايجاد نمود. برای ايجاد يک Data set پس از استقرار در حالت Design ، مراحل زير را دنبال می نمائيم .
-
بر روی شی adapter کليک سمت راست نموده و گزينه Generate Dataset را انتخاب می نمائيم . ويژوال استوديو در ادامه ، جعبه محاوره ای Generate Dataset را نمايش خواهد داد .

-
جداول مورد نظر را برای اضافه نمودن به Data set انتخاب کرده و در ادامه بر روی دکمه Ok کليک می نمائيم . ويژوال استوديو يک Data set جديد راايجاد و آن را به فرم وب اضافه می نمايد .
-
برای مشاهده داده موجود در Data set ، ( در حالت Desgin ) برروی شی DataSet کليک سمت راست نموده و گزينه View Schema را انتخاب می نمائيم . در ادامه Data Set در پنجره XML Designer نمايش داده می شود .

نمايش يک Data set
برای نمايش يک Data Set بر روی يک فرم وب و در زمان اجراء ، مراحل زير را دنبال می نمائيم :
-
افزودن يک کنترل بر روی فرم وب به منظور نمايش داده . مثلا" می توان يک کنترل DataGrid را به فرم وب اضافه نمود .
-
انتخاب Data set به عنوان منبع داده برای کنترل . مثلا" برای کنترل DataGrid ، گزينه Property Builder را از طريق پنجره Properties انتخاب و DataSource آن را به شی Dataset نسبت داده و خصلت DataMember را به يک جدول در Data Set نسبت می دهيم .


-
ستون های مورد نظر برای نمايش در کنترل را مشخص می نمائيم . برای کنترل DataGrid ، برروی آيتم Columns کليک نموده ( از طريق جعبه محاوره ای Properties ) و گزينه Create Columns Automaticlly At Run Time را غير فعال نموده ( Deselect ) و در ادامه ستون های مورد نظر برای نمايش را از طريق Available Columns list ، اضافه می نمائيم .( در اين مثال ، ستون های نام و آدرس پست الکترونيکی اضافه شده اند ) .

-
اضافه نمودن کد لازم در روتين مربوط به رويداد Page_Load به منظور پر نمودن Data set از طريق Data Adapter و نسبت دهی داده از طريق شی DataSet برای کنترل . مثلا" کد زير باعث نمايش داده در کنترل DataGrid ( ايجاد شده در مرحله قبل ) می نمايد .
|
VB.NET
|
|
Private Sub Page_Load (ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Mybase.Load
SqlDataAdapter1.Fill ( SrcoDataSet11)
DataGrid1.DataBind ( )
End Sub
|
-
پس از اجرای برنامه و لود شدن صفحه ، Dataset نمايش داده می شود .

با توجه به اين که پر نمودن Data set و نسبت دهی داده به کنترل DataGrid از طريق رويداد Page_Load انجام می شود ، ضرورتی به نگهداری اطلاعات وضعيت برای کنترل DataGrid وجود نخواهد داشت . با مقداردهی خصلت EnableViewState به False ، کارائی برنامه بهبود می يابد.
تغيير رکوردها در يک بانک اطلاعاتی
DataSet يک شی اصلی و مهم در ADO.NET بوده و هرگونه تغييرات شامل افزودن ، حذف و يا تغيير رکوردهای موجود در يک بانک اطلاعاتی عموما" از طريق شی فوق، انجام می شود . برای تغيير رکوردها از طريق يک DataSet مراحل زير را دنبال می نمائيم .
-
دستيابی به شی Dataset ( مشابه روشی که به آن اشاره گرديد)
-
تغيير DataSet
-
بهنگام سازی بانک اطلاعاتی از طريق DataSet توسط فراخوانی متد Update مربوط به شی Adapter
از مجموعه های Tables,Rows و Columns برای دستيابی به داده موجود در يک DataSet استفاده می گردد . در بخش دوم اين مقاله با نحوه استفاده از مجموعه های فوق به منظور ويرايش يک بانک اطلاعاتی ، آشنا خواهيم شد. |