دستيابی داده در ASP.NET 2.0   New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 دوشنبه  8  خرداد  1396  2017  May  29   Monday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

 دستيابی داده در ASP.NET 2.0 ( بخش دوم )  

 مديريت وب

14723

18

4.1

با توجه به جایگاه داده در عصر حاضر و  لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر  روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و  خدمات خود  را از طریق  سایت www.fabak.ir  به مخاطبان محترم عرضه می نماید

 

دستيابی به داده در ASP.NET 2.0

دستيابی داده در ASP.NET 2.0 ( بخش دوم )  

در بخش اول به مدل دستيابی داده در فريمورك دات نت اشاره  و با عناصر اساسی در اين معماری آشنا شديم . در بخش دوم با تمركز بر روی لايه دوم (  ADO.NET API ) به بررسی امكانات موجود به منظور كار با  ADO.NET  ، كنترل های ASP.NET و providers  خواهيم پرداخت .

Data Access APIs
لايه دوم در معماری دستيابی داده  ، مكانيزم های لازم برای كار با ADO.NET ، كنترل های ASP.NET و providers را ارائه می نمايد. از امكانات ارائه شده در اين لايه می توان به منظور انجام مجموعه ای از عمليات و فرآيندهای متداول استفاده نمود . با استفاده از كنترل های متنوع منبع داده و نسبت دهی داده در ASP.NET 2.0 ،  حجم كد مورد نياز به منظور حمايت از عمليات در ارتباط با داده  كاهش و در مواردی نيز حذف می گردد .

 Connection و Commands
ADO.NET از چندين Data Provider  متفاوت برای  اتصال به بانك های اطلاعاتی ، اجرای دستورات و بازيابی نتايج استفاده  می نمايد . در ADO.NET  از شی Connection برای اتصال به يك منبع داده خاص استفاده می گردد . مثلا" در صورت استفاده از  بانك اطلاعاتی SQL Server 2000 ، می توان از شی SQLConnection به منظور اتصال به بانك اطلاعاتی استفاده نمود . كد زير روش انجام اين كار را نشان می دهد :

[Visual Basic]
Dim nwindConn As SqlConnection = _
New SqlConnection("Data Source=localhost;Integrated Security=SSPI;" _
"Initial Catalog=northwind")
nwindConn.Open()

[C#]
SqlConnection nwindConn =
new SqlConnection("Data Source=localhost; Integrated Security=SSPI;"
"Initial Catalog=northwind");
nwindConn.Open();

پس از اتصال به يك منبع داده ،‌ می توان  از شی Command  به منظور اجرای دستورات و برگرداندن نتايج مورد نظر استفاده نمود  .شی Command  از طريق Command constructor كه يك query و يا عبارت SQL را دريافت می نمايد ، ايجاد می گردد . پس از ايجاد شی Command با استفاده از خصلت CommandText می توان عبارات SQL را ويرايش كرد .

[Visual Basic]
Dim catCMD As SqlCommand = _
New SqlCommand("SELECT CategoryID, CategoryName FROM Categories",nwindConn)

[C#]
SqlCommand catCMD =
new SqlCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn);


شی Command چندين متد Execute را به منظور  اجرای Stored Procedure ، query و يا عبارات  غير query نظير Update و Insert ، ارائه نموده است :

  • متد ExecuteReader : داده را به عنوان يك شی DataReader برمی گرداند . از متد فوق می توان در ارتباط با هر نوع query كه داده ئی را برمی گرداند ،‌استفاده نمود .

  • متد ExecuteScalar :  متد فوق يك مقدار نظير تعداد ركوردهائی كه با شرايط ذكر شده در يك query خاص مطابقت می نمايند و يا نتايج حاصل از فراخوانی يك تابع بانك اطلاعاتی  را برمی گرداند .

  • متد ExecuteNonQuery : متد فوق ،‌ دستوراتی را كه سطرهائی را برنمی گردانند ( نظير Sored procedure ، update و insert ) ،‌ اجراء می نمايد .

در زمان مقداردهی اوليه شی Command می بايست با توجه به شرايط موجود ،‌ متد مورد نظر را انتخاب نمود .

متد ExecuteReader ، نتايج را از طريق يك DataReader برمی گرداند . DataReader يك ساختار داده ئی متصل گراء ، فقط به سمت جلو و فقط خواندنی از داده های حاصل از اجرای يك query را برمی گرداند . پس از اجرای query ، اولين ركورد به DataReader  برگردانده می شود . در اين حالت ارتباط با بانك اطلاعاتی همچنان وجود داشته و امكان برگرداندن ركورد بعدی وجود خواهد داشت . در ساختمان داده فوق، صرفا" امكان خواندن ركوردها وجود داشته و نمی توان ركوردهای موجود را ويرايش نمود .

DataAdapters و DataSets
با اين كه DataReader برای برنامه های متصل گرا كافی به نظر می آيد ، ولی اين ساختمان داده قادر به حمايت از مدل غيرمتصل برای دستيابی به بانك های اطلاعاتی نمی باشد . بدين منظور  از كلاس های  DataAdapter و DataSet  ،‌استفاده می گردد .
DataSet مهمترين ابزار ذخيره سازی داده در معماری غيرمتصل ADO.NET است . DataSet مستقيما"  و از طريق يك شی Connection با بانك اطلاعاتی ارتباط برقرار نمی نمايد . برای استقرار داده در يك  DataSet می بايست يك DataAdapter ايجاد گردد . مسئوليت DataAdapter ارتباط با بانك اطلاعاتی ، اجرای query و استقرار داده در DataSet  می باشد . پس از فراخوانی متد Fill و يا  Update توسط DataAdapter ، تمامی عمليات انتقال داده در DataSet به صورت اتوماتيك انجام خواهد شد  . هر provider ارائه شده در فريمورك دات نت دارای يك شی DataAdapter است .
DataSet ،  مجموعه ای كامل از داده شامل جداول ، محدوديت ها و ارتباط بين جداول را در خود نگهداری می نمايد و می تواند شامل داده های محلی ( داده هائی كه از طريق كد ايجاد شده اند ) و يا داده هائی از چندين منبع داده باشد . 
ارتباط با منابع داده موجود توسط DataAdapter كنترل می گردد . DataAdapter همچنين تغييرات ايجاد شده در DataSet  را به منبع داده منتقل می نمايد .
كد زير سناريوی استفاده از يك DataSet را نشان می دهد :

[Visual Basic]

Dim nwindConn As SqlConnection = _
New SqlConnection("Data Source=localhost;" & _
"Integrated_Security=SSPI;Initial Catalog=northwind")

Dim selectCMD As SqlCommand = _
New SqlCommand("SELECT CustomerID, CompanyName FROM " & _
"Customers", nwindConn)
selectCMD.CommandTimeout = 30

Dim custDA As SqlDataAdapter = New SqlDataAdapter
custDA.SelectCommand = selectCMD
Dim custDS As DataSet = New DataSet
custDA.Fill(custDS, "Customers")
nwindConn.Close()

[C#]
SqlConnection nwindConn =
new SqlConnection("Data Source=localhost;" +
"IntegratedSecurity=SSPI;Initial Catalog=northwind");
SqlCommand selectCMD =
new SqlCommand("SELECT CustomerID, CompanyName FROM Customers",
nwindConn);
selectCMD.CommandTimeout = 30;

SqlDataAdapter custDA = new SqlDataAdapter();
custDA.SelectCommand = selectCMD;
nwindConn.Open();
DataSet custDS = new DataSet();
custDA.Fill(custDS, "Customers");
nwindConn.Close();

 

در كد فوق :

  • به منظور اتصال به بانك اطلاعاتی SQL Server يك SQLConnection ايجاد  شده است .

  • برای اجرای query مورد نظر در ارتباط با جدول Customers يك SQLCommand ايجاد شده است .

  • برای ايجاد SQLCommand يك DataAdapter ايجاد شده است ( ارتباط با بانك اطلاعاتی  ) . 

  • از طريق DataAdapter يك DataSet ايجاد شده است .DataSet بخش غير متصل عمليات داده بوده و می تواند به مجموعه وسيعی از كنترل های وب ASP.NET 2.0 نسبت داده شود .

در زمان استفاده از يك DataSet می توان آن را به هر نوع كنترل داده نسبت داد . بدين منظور از خصلت DataSource  و متد DataBind استفاده می گردد . در صورتی كه داده های موجود در بانك اطلاعاتی تغيير نمايند ،‌ تغييرات به صورت اتوماتيك در DataSet اعمال نمی شود و می بايست مجددا" از متد DataBind استفاده گردد . ( زمان و محل استفاده از متد DataBind از چالش های پياده كنندگان برنامه های وب در ASP.NET 1.x است ) .
در ASP.NET 2.0 تمامی فرآيندهای مربوط به ايجاد يك DataSet ، نسبت دهی داده ، نگهداری و يكسان سازی داده با ارائه مفهوم جديد منابع داده بهبود و  تسهيلات ويژه ای در اختيار پياده كنندگان برنامه های وب قرار می گيرد.

ASP.NET 2.0
در  ASP.NET 2.0 اغلب عمليات و يا فرآيندهای مورد نياز به منظور ايجاد يك SQLCommand ، توليد يك DataAdapter و استقرار داده در يك DataSet توسط بكارگيری DataSource از ديد پياده كنندگان برنامه های وب مخفی نگه داشته می گردد . در چنين مواردی می توان با استفاده از برنامه كمكی ( ويزارد ) نسبت دهی داده ، عمليات اشاره شده را به صورت اتوماتيك نيز انجام داد . برنامه كمكی Configure DataSource ،‌ كدمورد نياز به منظور اتصال به منابع ذخيره سازی داده ( نظير بانك های اطلاعاتی ، فايل های معمولی ، فايل هار XML ) را توليد و  query مورد نظر را ايجاد  می نمايد .
با داشتن يك منبع ذخيره سازی داده ،‌ می توان  در ادامه منبع داده را به يك كنترل نسبت داد . ارتباط برقرار شده بين منبع داده و كنترل مورد نظر ، Data Binding ناميده می شود . مقادير استخراج شده از منبع داده را می توان به خصلت های مربوط به هر كنترل نسبت و يا از آنان در جداول ، ليست ها و يا grid بدون نياز به نوشتن كد خاصی استفاده نمود .

در بخش سوم به بررسی كنترل های جديد معرفی شده در ASP.NET 2.0 برای دستيابی داده خواهيم پرداخت .



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382