پیاده سازی جستجو با استفاده از Stored Procedure درASP.NET
چهارشنبه 11 آذر 1394در این مقاله قصد داریم نحوه جستجو در میان رکوردهای پایگاه داده و نمایش نتایج با استفاده از کنترل GridView را با استفاده از #C آموزش دهیم.
پایگاه داده
در این مثال از پایگاه داده Microsoft’s Northwind Database استفاده شده است که از در لینک زیر دانلود و دستورالعمل نصب آن موجود است.
Download and install Northwind Database
StoredProcedure
StoredProcedure زیر یک پارامتر @ContactName را دریافت می کند و مقدار آن برای جستجو در میان رکوردهای جدول مشتریان در پایگاه داده Northwind با استفاده از عملگر LIKE استفاده می شود.
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[Customers_SearchCustomers] @ContactName NVARCHAR(30) AS BEGIN SET NOCOUNT ON; SELECT CustomerId ,ContactName ,City ,Country FROM Customers WHERE ContactName LIKE @ContactName + '%' END
پیاده سازی جستنجو با استفاده ازStored Procedure در ASP.Net
کد HTML زیر شامل یک کنترل ASP.Net GridView، یک TextBox و یک Button است. GridView توسط رکوردهای جدول Customers از پایگاه داده Northwind با استفاده از SqlDataSource پر شده است.
SqlDataSource با استفاده از properties زیر مقداردهی شده است:
SelectCommand – نام StoredProcedure ای است که باید اجرا شود.
SelectCommandType – مقدار آن به صورت StoredProcedure تنظیم می شود و مقدار پیش فرض آن Text است.
SqlDataSource همچنین یک SelectParameter دارد. در اینجا SelectParameter از نوع ControlParameter به عنوان مقدار یک کنترل ASP.Net از نوع TextBox استفاده شده است که باید به عنوان یک پارامتر ارسال شود.
ControlParameter با استفاده از خواص زیر تنظیم شده است:
Name : نام پارامتری است که باید به StoredProcedure ارسال شود. نام پارامتر باید دقیقا همانند نام پارامتر StoredProcedure باشد.
ControlID : ID کنترلی که مقدارش باید به عنوان پارامتر ارسال شود.
DefaultValue : StoredProcedure ای که در مقاله مورد استفاده قرار گرفته است، زمانی که مقدار پارامتر خالی باشد، همه رکوردها را نمایش می دهد و مقدار default آن blank است.
ConvertEmptyStringToNull – همان طور که از نامش مشخص است، اگر مقدارش True باشد، رشته های blank یا empty را به عنوان NULL ارسال می کند. چون در اینجا رشته های empty لازم است که ارسال شوند، مقدارآن به صورت False تنظیم شده است.
جستجوی مشتری:
<asp:TextBox ID="txtSearch" runat="server"></asp:TextBox> <asp:Button ID="btnSearch" runat="server" Text="Search" /> <hr /> <asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White" runat="server" AutoGenerateColumns="false" DataSourceID="GridDataSource" AllowPaging="true"> <Columns> <asp:BoundField DataField="ContactName" HeaderText="Name" ItemStyle-Width="150" /> <asp:BoundField DataField="City" HeaderText="City" ItemStyle-Width="150" /> <asp:BoundField DataField="Country" HeaderText="Country" ItemStyle-Width="150" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="GridDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ConStr %>" SelectCommand="Customers_SearchCustomers" SelectCommandType="StoredProcedure"> <SelectParameters> <asp:ControlParameter Name="ContactName" ControlID="txtSearch" PropertyName="Text" DefaultValue = "" ConvertEmptyStringToNull = "false" /> </SelectParameters> </asp:SqlDataSource>
خروجی برنامه :
- ASP.net
- 2k بازدید
- 4 تشکر