پیاده سازی جستجو با استفاده از Stored Procedure درASP.NET

چهارشنبه 11 آذر 1394

در این مقاله قصد داریم نحوه جستجو در میان رکوردهای پایگاه داده و نمایش نتایج با استفاده از کنترل GridView را با استفاده از #C آموزش دهیم.

پیاده سازی جستجو با استفاده از Stored Procedure درASP.NET

پایگاه داده

در این مثال از پایگاه داده 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>

خروجی برنامه :

 

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید