استفاده از پارامترها با کنترل های داده - 2
کنترل های سرور داده و پارامترها :
در بخش قبل به تعريف پارامترها ، دليل و نحوه استفاده ، انواع و جهت آنها پرداختيم
. اما در اين بخش می خواهيم به شما نحوه استفاده و کاربرد عملی آنها را در عمليات های
گوناگون انتخاب ، ويرايش ، حذف و ... داده با استفاده از کنترل های سرور داده در ASP.NET
را آموزش دهيم .
همانطور که می دانيد ، پارامترها ماهيتی متغير دارند . یعنی مقدار آنها در ابتدا مشخص
نيست و می تواند در هر لحظه تغيير کرده و بايستی از سوی کاربر و يا برنامه تعيين شود
. برای استفاده از پارامترها همراه با کنترل های سرور داده ، بايد آنها را در دستورات
انتخاب و ويرايش اطلاعات اين کنترل ها ايجاد کنيم . روش ايجاد پارامترها به شرح زير
است :
برای مثال يک کنترل SqlDataSource را در نظر بگيريد . اين کنترل برای انتخاب داده از
منبع داده ای خود دستور SelectCommand را يک دستور به زبان SQL است را اجرا می کند
. شما بايستی پارامترهای مورد نظر خود را به صورت نشانه هایی در دستورات SQL مربوط
به هر يک از عمليات های داده ای قرار دهيد . برای اين منظور يک نام منحصر به فرد برای
پارامتر انتخاب کرده و علامت @ را در ابتدای هر پارامتر در دستور SQL بگذارید . در
اين صورت مقدار اين پارامتر بايد در زمان اجرا و توسط کاربر تعيين شود . برای درک بهتر
اين مطلب به مثال زير توجه کنيد :
مثال : برای مثال می خواهيم در جدول Students که در زير می بينيد
و شامل مشخصات چندين دانشجو است ، در هر لحظه اطلاعات مربوط به يک دانشجو را که نام
آن برابر با پارامتر Person است ، را انتخاب کرده و در يک جدول
نمايش دهيم . برای اين منظور بايستی از دستور SQL به صورت زير استفاده کنيم :
|
SelectCommand = " Select *
From Students
Where Name
= @Person "
|
|
1
|
Ali
|
Mosavi
|
HardWare
|
16
|
|
2
|
Soheil
|
Maesomi
|
SoftWare
|
18
|
|
3
|
Reza
|
Kashani
|
SoftWare
|
14
|
|
4
|
Sohrab
|
Samadi
|
HardWare
|
19
|
بعد از اينکه پارامتر را در دستور SQL جاسازی و ايجاد کرديم ، بايد به نحوی مقدار آن
را برای کنترل تامين کنيم . تامين مقدار اين پارامتر می تواند از طريق يکی از انواع
پارامترهای ممکن در ASP.NET که در بخش قبلی معرفی کرديم ، صورت گيرد . کنترل های سرور
داده برای دريافت مقادير پارامترهای ايجاد شده برای هر عمليات داده ای خاص مثل Insert
, Delete , Update و يا Select ، از يک مجموعه پارامتر يا Parameter Collection خاص
استفاده می کند . اين مجموعه ها بر عمليات های مختلف داده ای عبارتند از :
- SelectParameters : اين مجموعه نگهدارنده پارامترهای لازم برای
عمليات انتخاب داده ، یعنی پارامترهای تعيين شده در دستور SelectCommand کنترل است
.
- UpdateParameters : اين مجموعه نگهدارنده پارامترهای لازم برای
عمليات ويرايش و به روز رسانی داده ، یعنی پارامترهای تعيين شده در دستور UpdateCommand
کنترل است .
- DeleteParameters : اين مجموعه نگهدارنده پارامترهای لازم برای
عمليات حذف داده ، یعنی پارامترهای تعيين شده در دستور DeleteCommand کنترل است .
- InsertParameters : اين مجموعه نگهدارنده پارامترهای لازم برای
عمليات وارد کردن داده های جديد ، یعنی پارامترهای تعيين شده در دستور InsertCommand
کنترل است .
چنانچه برای هر يک از عمليات های داده ای فوق پارامتری در يکی از دستورات استفاده شده
باشد ، بايد آن پارامتر را به طور کامل در مجموعه مربوط به ان تعريف شود . سپس کنترل
در هنگام اجرای برنامه و رسيدن به هر يک از عمليات های مورد نظر ، مجموعه پارامتر يا
پارامترهای آن را بررسی کرده و پارامترهای لازم را برای انجام عمليات ايجاد و مقداردهی
می کند . برای درک بهتر مطالب اراثه شده به مثال های زير توجه کنيد :
مثال 1 : در مثال زير يک کنترل SqlDataSource برای اتصال به پايگاه
داده دانشگاه و جدول Students که مقادير آن را در قسمت بالا نمايش داده ايم ، استفاده
کرده ايم . همچنين يک کنترل FormView را برای نمايش اطلاعات هر دانشجو انتخاب شده در
کنترل DropDownList را قرار داده ايم .
روش کار به اين صورت است که کنترل FormView به کنترل SqlDataSource متصل شده است و
در هر لحظه اطلاعات مربوط به دانشجويي را نشان می دهد که نام خواندگی آن در کنترل DropDoanList
انتخاب شده است . کنترل داده SqlDataSource که در واقع تامين کننده داده برای کنترل
FormView است در دستور SelectCommand خود دارای يک پارامتر
به نام Person است که مقدار آن وابسته به خاصيت
SelectedValue کنترل DropDownList است ، يعنی موردی که در هر لحظه در آن
کنترل انتخاب شده است . هر بار که مقدار انتخابی کنترل DropDownList را تغيير دهيد
، اين کنترل صفحه را Postback کرده و کنترل داده دوباره اطلاعات را با مفدار پارامتر
جديد دريافت شده از منبع داده ای فراخوانی می کند . برای مشاهده نحوه عملی کار اين
برنامه مقدار انتخاب شده در کنترل DropDownList را به دلخواه تغيير دهيد :
<asp:SqlDataSource runat="server" ID="SqlDataSource1"
ConnectionString="<%$ ConnectionStrings:Univer_Connection %> "
SelectCommand="SELECT * FROM [Students] Where Family = @Person"
>
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1"
Name="Person" PropertyName="SelectedValue" DefaultValue="Maesomi"
/>
</SelectParameters>
</asp:SqlDataSource>
<asp:DetailsView ID="DetailsView1" runat="server" DataSourceID="SqlDataSource1"
Width="200px" BorderColor="Blue">
</asp:DetailsView>
<asp:Label ID="Label1" runat="server" Text="Select Family
of the Student : " Font-Size="Medium" >
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">
<asp:ListItem Selected="True"> Mosavi </asp:ListItem>
<asp:ListItem> Maesomi </asp:ListItem>
<asp:ListItem> Kashani </asp:ListItem>
<asp:ListItem> Samadi </asp:ListItem>
</asp:DropDownList>
|
|
با عرض پوزش تا آماده سازی Database سايت ، بخش های عملی مربوط به مثال های عملی پايگاه
داده ، نمايش داده نمی شوند . اما می توانيد با شبيه سازی مثال ها در کامپيوتر های
خود از آنها استفاده کنيد .
|