1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

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

شروع موضوع توسط minaaa ‏22/10/11 در انجمن Web

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : دستیابی داده در ASP.NET 2.0

    شی 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 برگردانده می شود . در این حالت ارتباط با بانک اطلاعاتی همچنان وجود داشته و امکان برگرداندن رکورد بعدی وجود خواهد داشت . در ساختمان داده فوق، صرفا” امکان خواندن رکوردها وجود داشته و نمی توان رکوردهای موجود را ویرایش نمود
     
  2. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : دستیابی داده در ASP.NET 2.0

    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 را به منبع داده منتقل می نماید .
     
  3. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : دستیابی داده در ASP.NET 2.0

    کد زیر سناریوی استفاده از یک 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();​
     
  4. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : دستیابی داده در ASP.NET 2.0

    در کد فوق :

    به منظور اتصال به بانک اطلاعاتی 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 ، نسبت دهی داده ، نگهداری و یکسان سازی داده با ارائه مفهوم جدید منابع داده بهبود و تسهیلات ویژه ای در اختیار پیاده کنندگان برنامه های وب قرار می گیرد.
     
  5. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : دستیابی داده در ASP.NET 2.0

    ASP.NET 2.0

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

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : دستیابی داده در ASP.NET 2.0

    متداولترین هدف یک صفحه وب ، ‌ارائه اطلاعات مورد نیاز کاربران است . ارائه اطلاعات شخصی ،‌ تجاری و عمومی نمونه هائی در این زمینه می باشد . بدیهی است در صورتی که از این زاویه برنامه های وب را بررسی نمائیم به جایگاه مهم فن آوری های موجود به منظور دستیابی داده بیشتر پی خواهیم برد .
    تقریبا” هر نوع برنامه وب پویا به نوعی در ارتباط با داده بوده و نیازمند مکانیزم هائی به منظور دستیابی داده می باشد . هر پلت فرم به منظور دستیابی داده امکانات و پتانسیل های متعددی را در اختیار پیاده کنندگان نرم افزار قرار می دهد . پس از ارائه دات نت ، پیاده کنندگانی که برای پیاده سازی نرم افزار ( Desktop و یا وب ) این محیط را انتخاب کرده بودند عملا” شاهد تغییرات گسترده در این رابطه با هدف تسهیل در امر پیاده سازی برنامه هائی با محوریت دستیابی داده بودند . در ASP.NET 2.0 مجموعه امکانات جدیدی به منظور تسهیل در پیاده سازی برنامه های وب با محوریت دستیابی به داده ارائه شده است . برخلاف ASP.NET 1.0 که پیاده کنندگان را ملزم می نماید تا کدهائی سفارشی به منظور بازیابی و نسبت دهی داده به کنترل های سرویس دهنده بنویسند ، در ASP.NET 2.0 با تبعیت از یک رویکرد تعریفی ،‌ عملیات نسبت دهی داده بدون نیاز به نوشتن کدی خاص انجام خواهد شد . عملیات زیر نمونه هائی در این زمینه می باشد :

    انتخاب و نمایش داده

    مرتب سازی ، Paging و Caching داده

    درج ، حذف و بهنگام سازی داده

    استفاده از پارامتر به منظور فیلترینگ و یا فرم های Master-Details

    ASP.NET 2.0 دو مجموعه جدید از کنترل های سرویس دهنده را به منظور تامین خواسته های فوق و مدل تعریفی نسبت دهی داده ارائه نموده است . کنترل های فوق ، مسئولیت انجام عملیات مورد نظر برای سناریوهای متفاوت دستیابی داده با توجه به ماهیت Stateless بودن وب را ارائه نموده و پیاده کنندگان درگیر پیچیدگی ها و سایر مسائل پشت پرده نخواهند شد .
     
  7. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : دستیابی داده در ASP.NET 2.0

    ترل های منبع داده

    کنترل های منبع داده یک منبع ذخیره سازی داده خاص نظیر یک بانک اطلاعاتی ، فایل های XML و یا سرویس های وب XML را ارائه می نمایند . کنترل های فوق امکان انجام عملیات متفاوت و قدرتمندی در ارتباط با داده نظیر مرتب سازی ، فیلترینگ ، بهنگام سازی ، حذف و نمایش اطلاعات به صورت صفحه به صفحه را ارائه می نمایند که کنترل های استفاده شده در سطح لایه رابط کاربر می توانند از امکانات آنان به منظور نسبت دهی استفاده نمایند .
    در ASP.NET 2.0 ، از روش های ساده به منظور دستیابی و نمایش اطلاعات موجود در بانک های اطلاعاتی استفاده می شود . در ASP.NET 1.x به منظور دستیابی به داده می بایست از اسکریپت هائی خاص برای‌ ارتباط ،‌ باز نمودن ، استخراج و بازیابی رکوردهای موجود در یک بانک اطلاعاتی استفاده می گردید ،‌ تمامی فرآیندهای فوق در ASP.NET 2.0 از طریق کنترل های منبع داده که به صورت تعریفی در یک صفحه مشخص می گردند ،‌انجام خواهد شد .
    کنترل های منبع داده ارائه شده در ASP.NET 2.0 عبارتند از :

    SqlDataSource : امکان دستیابی به یک بانک اطلاعاتی SQL ارائه شده توسط ADO.NET Provider نظیر سرویس دهنده SQL Server شرکت مایکروسافت ، را فراهم می نماید.

    ObjectDataSource : امکان دستیابی به یک شی Middle-tier نظیر یک لایه دستیابی داده و یا یک عنصر business را فراهم می نماید.

    AccessDataSource : امکان دستیابی به یک بانک اطلاعاتی اکسس ( Jet ) را فراهم می نماید.

    SiteMapDataSource : امکان دستیابی به یک ساختار سلسله مراتبی استفاده شده توسط یک ASP.NET 2.0 site navigation provider را فراهم می نماید.

    XmlDataSource : امکان دستیابی به یک فایل و یا سند XML را فراهم می نماید .
     
  8. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : دستیابی داده در ASP.NET 2.0

    کنترل های نسبت دهی داده

    کنترل های نسبت دهی داده،کنترل های لایه رابط کاربر می باشند که داده را به عنوان markup بررسی تا پاسخ لازم را در اختیار مرورگرها و سایر دستگاه های سرویس دهنده قرار دهند . یک کنترل نسبت دهی داده می تواند داده را به صورت اتوماتیک از یک منبع داده اخذ و متناسب با چرخه حیات یک صفحه آنان را بازیابی و نمایش دهد . کنترل های فوق می توانند از امکانات و مزایای ذاتی یک منبع داده نظیر مرتب سازی ، فیلترینگ ، بهنگام سازی ، حذف و نمایش اطلاعات به صورت صفحه به صفحه استفاده نمایند . ارتباط بین کنترل نسبت دهی داده با یک کنترل منبع داده توسط خصلت DataSourceID مربوطه محقق می گردد .
    در ASP.NET 1.x کنترل های نسبت دهی داده متعددی نظیر DataGrid , DataList ، Repeater و کنترل های لیست نظیر DropDownList ارائه شده است . در ASP.NET 2.0 چندین کنترل جدید نسبت دهی داده اضافه شده است :

    GridView ، داده را در یک قالب خاص مشتمل بر تعدادی سطر و یا ستون ( grid ) نمایش می دهد . کنترل فوق نسخه بهنگام شده کنترل DataGrid است که قادر به استفاده از مزایا و قابلیت های منابع داده به صورت اتوماتیک می باشد .

    DetailsView ، داده را در جدولی شامل زوج مقدار و Label ارائه می نماید (نظیر form view در اکسس مایکروسافت ) . کنترل فوق قادر به استفاده از مزایا و قابلیت های منابع داده به صورت اتوماتیک می باشد .

    TreeView ، داده را به صورت یک ساختار سلسله مراتبی درخت گونه که امکان توسعه هر یک از گره های آن وجود دارد ،‌ ارائه می نماید .

    Menu ، داده را به شکل یک منو سلسله مراتبی ارائه می نماید .

    برای آشنائی با نحوه استفاده از کنترل های فوق در ادامه به بررسی یک نمونه مثال کاربردی خواهیم پرداخت
     
  9. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    پاسخ : دستیابی داده در ASP.NET 2.0

    مثال : بازیابی داده موجود در بانک اطلاعاتی اکسس و نمایش در یک GridView

    فرضیات : بانک اطلاعاتی SrcoTest.mdb ، جدول ScroTable1
    بدین منظور از دو کنترل استفاده شده است :

    کنترل AccessDataSource جهت اتصال به بانک اطلاعاتی SrcoTest.mdb و بازیابی داده ( یک کنترل منبع داده )

    کنترل Gridview جهت نمایش داده های موجود در جدول ScroTable1 ( یک کنترل نسبت دهی داده )

    <html>
    <body>
    <form Runat=”Server”>
    [FONT=”Tahoma”]
    [h=4]استفاده از دو کنترل منبع داده و نسبت دهی داده[/h]

    DataFile=”c:\SrcoTest.mdb”
    SelectCommand=”SELECT Fname, Lname, Email FROM SrcoTable1″/>




    [/FONT][h=5][FONT=”Tahoma”]تهیه شده توسط شرکت سخا روش [/FONT][/h][FONT=”Tahoma”]
    [/FONT]
    </form>
    </body>
    </html>

    پس از ذخیره کد فوق در فایلی با نام دلخواه ( مثلا” DataAcessExample1.aspx ) و اجرای آن خروجی زیر را خواهیم داشت .

    [​IMG]
    در مثال فوق ، با استفاده از مجموعه امکانات موجود ( Layout و Style ) می توان شکل و قالب جدول را به دلخواه تغییر داد .