|
عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
|
دستيابی و بهنگام سازی داده در ASP.NET 2.0 (بخش دوم) |
مديريت وب |
5259 |
4 |
3.5 |
دستيابی و بهنگام سازی داده در ASP.NET 2.0
دستيابی و بهنگام سازی داده در ASP.NET 2.0 (بخش دوم)
در
بخش اول از
مجموعه مقالات " دستيابی و بهنگام سازی داده در
ASP.NET 2.0 " ، به منظور آشنائی با نحوه عملكرد كنترل
های AccessDataSource و
SqlDataSource به بررسی يك مثال كاربردی پرداخته و بدين منظور مراحل
زير تعريف و مراحل اول تا سوم تشريح گرديد .
در ادامه به بررسی مراحل چهارم و پنجم خواهيم پرداخت
.
مرحله چهارم : استفاده از يك كنترل منبع داده (
AccessDataSource و يا
SqlDataSource ) و پيكربندی آن با
استفاده از برنامه كمكی ( ويزارد )
در اين مرحله به منظور دستيابی به بانك
اطلاعاتی maghalat.mdb ، يك كنترل منبع داده
SqlDataSource را از طريق Toolbox
( بخش Data ) انتخاب كرده و آن را بر روی صفحه جديد
ايجاد شده ( AccessToDataBase.aspx ) مستقر می
نمائيم . پس از استقرار يك كنترل منبع داده SqlDataSource
، يك جعبه كوچك خاكستری در كنار آن نمايش داده می شود . برای دستيابی صحيح به داده
، می بايست مجموعه ای از خصلت های SqlDataSource را
تنظيم نمود ( بانك اطلاعاتی و query مورد نظری است كه
قصد اجرای آن را داريم ) . با اين كه می توان تنظيم خصلت های فوق را با استفاده از
Properties pane انجام داد ولی با استفاده از ويزاردی كه
در كنار كنترل و توسط لينك Configure Data Source فعال
می گردد ، اين كار سريعتر انجام می شود .

برای پيكربندی كنترل
SqlDataSource ، پس از كليك بر روی
"configure Data Source " مراحل زير را دنبال می نمائيم :




-
تعريف يك SELECT query سفارشی (
در صورت ضرورت ) : برای ايجاد يك عبارت SELECT
می توان از يك table و يا view
استفاده نمود . يكی از ويژگی های مهم بانك های اطلاعاتی رابطه ای ، ذخيره داده در
چندين جدول مرتبط به هم است . در صورتی كه می خواهيم داده موجود در چندين جدول را
با توجه به خواسته موجود بازيابی نمائيم ، می توان از JOIN
استفاده نمود . همچنين امكان استفاده از يك Stored Procedure
برای بازيابی ركوردها نير وجود دارد . در چنين مواردی می بايست گزينه "Specify a
custom SQL statement of stored procedure" را انتخاب و در ادامه از دكمه
Next استفاده نمود ( در مرحله ای كه می بايست يك عبارت
SELECT را انتخاب نمود ) . پس از نمايش پنجره مربوطه ،
می توان يك SQL query را به صورت دستی تايپ و يا از طريق
ليست موجود يك Stored procedure را انتخاب نمود .
-
اجرای Query و بررسی نتايج
: پس از پيكربندی عبارت SELECT ( از طريق يك
table و يا view ، يك
stored procedure و يا نوشتن يك عبارت
SQL خاص ) ، با كليك بر روی دكمه
Next ، صفحه نهائی ويزارد پيكربندی كنترل منبع داده نمايش داده می شود . در
اين مكان می توان query را اجراء و نتايج را مشاهده نمود
.

نكته : در صورت استفاده از كنترل
AccessDataSource ، مراحل فوق تا حدودی متفاوت است
. مثلا" در مقابل اين كه از شما درخواست گردد كه يك
Connection String را مشخص نمائيد ، می بايست مسير فايل بانك اطلاعاتی را
مشخص نمود . با توجه به اين كه در چنين مواردی از يك
connection String استفاده نخواهد شد ، صفحه مربوط به تعريف يك نام برای
Connection String و ذخيره آن در فايل
Web.Config را مشاهده نخواهيم كرد .
مرحله پنجم : استفاده از يك كنترل سرويس دهنده نمايش اطلاعات
( نظير GridView ) و پيكربندی آن با استفاده از برنامه كمكی مربوطه
پس از دستيابی به داده موجود در يك بانك اطلاعاتی ، ممكن است بخواهيم
بدون انجام هيچگونه پردازش آنان را مستقيما" بر روی يك صفحه وب نمايش دهيم . برای
نمايش داده می توان از يكی از كنترل های سرويس دهنده نمايش اطلاعات ( يا كنترل های
داده وب ) نظير Gridview استفاده و خصلت
DataSourceID آن را به ID
كنترل منبع داده ( در اين مثال SqlDataSource ) نسبت
داد.
برای استفاده و پيكربندی Gridview به منظور نمايش داده
بازيابی شده از بانك اطلاعاتی Maghalat.mdb مراحل زير را
دنبال می نمائيم :

شكل زير اجرای
برنامه و نمايش مقالات در بانك اطلاعاتی Maghalat.mdb را
نشان می دهد .

نحوه دستيابی به داده برگردانده شده توسط
SqlDataSource از طريق كد
در صورت تمايل می توان با استفاده از برنامه به محتويات يك كنترل
SqlDataSource دستيابی داشت . اجازه دهيد قبل از
اين كه ببينيم كه چه عملياتی اتفاق می افتد ، نحوه برگرداندن داده توسط كنترل
SqlDataSource را بررسی نمائيم . در نسخه
ASP.NET 1.x از دو روش و يا شی به منظور كار با
داده استفاده می گردد :
-
DataReader :
ساختمان داده فوق يك ساختار به منظور كار با داده برگردانده شده از يك بانك
اطلاعاتی را ارائه می نمايد كه دارای ويژگی هائی نظير : فقط خواندنی و
صرفا" به سمت جلو می باشد و به يك اتصال فعال نياز دارد ( ساختار فوق دارای
كارائی به مراتب بيشتری نسبت به DataSet ،
DataTables و DataView است
) .
-
DataSet ،
DataTables و DataView : در صورت
استفاده از يك DataTable امكان دستيابی تصادفی و قابل
ويرايش به ركوردهای برگردانده شده از يك بانك اطلاعاتی فراهم می گردد . يك
DataSet ، مجموعه ای از DataTable
است . از DataView می توان به منظور بازيابی يك مجموعه
مرتب شده و يا فيلتر شده از ركوردهای موجود در يك Datatable
استفاده نمود .
برای آشنائی بيشتر با
تفاوت هر يك از ساختارهای فوق ، مطالعه مقاله "
DataSet و يا DataReader "
پيشنهاد می گردد.
برای دستيابی به محتويات كنترل SqlDataSource از
طريق برنامه ، می توان از متد Select استفاده نمود . متد
فوق از يك پارامتر ورودی از نوع DataSourceSelectArguments
استفاده می نمايد . از پارامتر فوق می توان به منظور ارسال درخواست خود به كنترل
SqlDataSource قبل از برگرداندن داده استفاده نمود .
مثلا" زمانی كه از يك كنترل Gridview با قابليت مرتب
سازی استفاده می گردد ، برای مرتب سازی يك ستون از متد Select
استفاده خواهد شد و از يك آرگومان
DataSourceSelectArguments كه مقدار آن از خصلت
SortExpression نسبت داده شده به نام ستون اقتباس می گردد ، استفاده می شود
. در صورت عدم تمايل به عمليات مرتب سازی و فيلتر نمودن داده و
يا برگرداندن صرفا" يك صفحه داده توسط SqlDataSource
، می توان پارامتر DataSourceSelectArguments.Empty را
برای كنترل ارسال نمود .
جمع بندی
در دو مقاله اخير با نحوه دستيابی به يك بانك اطلاعاتی با استفاده از
كنترل های SqlDatSource و
AccessDataSource آشنا شديم . در مقالات فوق ، صرفا" نحوه بازيابی
ركوردهای مورد نظر از يك جدول بانك اطلاعاتی تشريح گرديد . كنترل های فوق
دارای قابليت های گسترده ديگری می باشند كه در آينده به بررسی آنان خواهيم پرداخت .
پس از استفاده از يك كنترل منبع داده نظير SqlDataSource
و يا AccessDataSource در ادامه می توان از برنامه كمكی
"پيكربندی منبع داده " همراه كنترل به منظور پيكربندی منبع داده استفاده نمود . پس
از پيكربندی كنترل منبع داده ، می توان داده را مستقميا" به يك كنترل سرويس
دهنده نمايش اطلاعات نظير GridView نسبت داد و يا با
استفاد از كد و نوشتن كدهای لازم از طريق برنامه و با فراخوانی متد
Select كنترل SqlDataSource
به آنان دستيابی داشت .