کنترل های سرور داده و پارامترها :

در بخش قبل به تعریف پارامترها ، دلیل و نحوه استفاده ، انواع و جهت آنها پرداختیم . اما در این بخش می خواهیم به شما نحوه استفاده و کاربرد عملی آنها را در عملیات های گوناگون انتخاب ، ویرایش ، حذف و … داده با استفاده از کنترل های سرور داده در ASP.NET را آموزش دهیم .

همانطور که می دانید ، پارامترها ماهیتی متغیر دارند . یعنی مقدار آنها در ابتدا مشخص نیست و می تواند در هر لحظه تغییر کرده و بایستی از سوی کاربر و یا برنامه تعیین شود . برای استفاده از پارامترها همراه با کنترل های سرور داده ، باید آنها را در دستورات انتخاب و ویرایش اطلاعات این کنترل ها ایجاد کنیم . روش ایجاد پارامترها به شرح زیر است :

برای مثال یک کنترل SqlDataSource را در نظر بگیرید . این کنترل برای انتخاب داده از منبع داده ای خود دستور SelectCommand را یک دستور به زبان SQL است را اجرا می کند . شما بایستی پارامترهای مورد نظر خود را به صورت نشانه هایی در دستورات SQL مربوط به هر یک از عملیات های داده ای قرار دهید . برای این منظور یک نام منحصر به فرد برای پارامتر انتخاب کرده و علامت @ را در ابتدای هر پارامتر در دستور SQL بگذارید . در این صورت مقدار این پارامتر باید در زمان اجرا و توسط کاربر تعیین شود . برای درک بهتر این مطلب به مثال زیر توجه کنید :

مثال : برای مثال می خواهیم در جدول Students که در زیر می بینید و شامل مشخصات چندین دانشجو است ، در هر لحظه اطلاعات مربوط به یک دانشجو را که نام آن برابر با پارامتر Person است ، را انتخاب کرده و در یک جدول نمایش دهیم . برای این منظور بایستی از دستور SQL به صورت زیر استفاده کنیم :
مثال

 SelectCommand = ”  Select   *   From    Students    Where  Name   =  @Person

 

 

Students Table
Id     Name     Family     Major     Garde
۱     Ali     Mosavi     HardWare     ۱۶
۲     Soheil     Maesomi     SoftWare     ۱۸
۳     Reza     Kashani     SoftWare     ۱۴
۴     Sohrab     Samadi     HardWare     ۱۹

 

 

 

بعد از اینکه پارامتر را در دستور SQL جاسازی و ایجاد کردیم ، باید به نحوی مقدار آن را برای کنترل تامین کنیم . تامین مقدار این پارامتر می تواند از طریق یکی از انواع پارامترهای ممکن در ASP.NET که در بخش قبلی معرفی کردیم ، صورت گیرد . کنترل های سرور داده برای دریافت مقادیر پارامترهای ایجاد شده برای هر عملیات داده ای خاص مثل Insert , Delete , Update و یا Select ، از یک مجموعه پارامتر یا Parameter Collection خاص استفاده می کند . این مجموعه ها بر عملیات های مختلف داده ای عبارتند از :

SelectParameters : این مجموعه نگهدارنده پارامترهای لازم برای عملیات انتخاب داده ، یعنی پارامترهای تعیین شده در دستور SelectCommand کنترل است .
UpdateParameters : این مجموعه نگهدارنده پارامترهای لازم برای عملیات ویرایش و به روز رسانی داده ، یعنی پارامترهای تعیین شده در دستور UpdateCommand کنترل است .
DeleteParameters : این مجموعه نگهدارنده پارامترهای لازم برای عملیات حذف داده ، یعنی پارامترهای تعیین شده در دستور DeleteCommand کنترل است .
InsertParameters : این مجموعه نگهدارنده پارامترهای لازم برای عملیات وارد کردن داده های جدید ، یعنی پارامترهای تعیین شده در دستور InsertCommand کنترل است .

چنانچه برای هر یک از عملیات های داده ای فوق پارامتری در یکی از دستورات استفاده شده باشد ، باید آن پارامتر را به طور کامل در مجموعه مربوط به ان تعریف شود . سپس کنترل در هنگام اجرای برنامه و رسیدن به هر یک از عملیات های مورد نظر ، مجموعه پارامتر یا پارامترهای آن را بررسی کرده و پارامترهای لازم را برای انجام عملیات ایجاد و مقداردهی می کند . برای درک بهتر مطالب اراثه شده به مثال های زیر توجه کنید :

مثال ۱ : در مثال زیر یک کنترل 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>