如何使用文本框在ASP.NET中搜索数据库

时间:2012-03-07 00:07:09

标签: asp.net html vb.net search

我有一个简单的问题,我正在构建一个ASP.NET网站并设置了一个数据库(SQL Server 2008)。我的一个页面我正在显示数据库的所有条目,顶部有一个搜索文本框。我将如何获取用户输入的值并使用该字符串仅显示适用于它的数据条目。

这是我的.aspx文件的代码

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Layout.Master" CodeBehind="db.aspx.vb" Inherits="Project4.db" %>

    <fieldset>
        <legend>Search</legend>
        Last Name: <asp:TextBox ID="LastNameSearch" runat="server"></asp:TextBox>
        <asp:Button ID="Submit" runat="server" Text="Search" /> <br />
    </fieldset>



<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" 
    AutoGenerateColumns="False" BackColor="White" BorderColor="#3366CC" 
    BorderStyle="None" BorderWidth="1px" CellPadding="4" 
    DataKeyNames="FirstName,LastName,PhoneNum" AllowPaging="True">
    <Columns>
        <asp:CommandField ShowEditButton="True" />
        <asp:BoundField DataField="FirstName" HeaderText="FirstName" 
            SortExpression="FirstName" ReadOnly="True" />
        <asp:BoundField DataField="LastName" HeaderText="LastName"
            SortExpression="LastName" ReadOnly="True" />
        <asp:BoundField DataField="PhoneNum" HeaderText="PhoneNum"
            SortExpression="PhoneNum" ReadOnly="True" />
        <asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />
        <asp:CommandField ShowDeleteButton="True" />
    </Columns>
    <FooterStyle BackColor="#99CCCC" ForeColor="#003399" />
    <HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" />
    <PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" />
    <RowStyle BackColor="White" ForeColor="#003399" />
    <SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
    <SortedAscendingCellStyle BackColor="#EDF6F6" />
    <SortedAscendingHeaderStyle BackColor="#0D4AC4" />
    <SortedDescendingCellStyle BackColor="#D6DFDF" />
    <SortedDescendingHeaderStyle BackColor="#002876" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:Database1ConnectionString %>" 
    SelectCommand="SELECT [FirstName], [LastName], [PhoneNum], [Email] FROM [MailList]" 
    ViewStateMode="Disabled" OldValuesParameterFormatString="original_{0}">

</asp:SqlDataSource>

现在我想搜索字符串并将其与LastName的数据库的第二列进行比较,并仅显示姓氏与之匹配的记录。任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

这应该非常接近,从记忆中做到这一点,所以它可能会稍微偏离。尽管我认为这应该足以让你朝着正确的方向前进

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:Database1ConnectionString %>" 
    SelectCommand="SELECT [FirstName], [LastName], [PhoneNum], [Email] FROM [MailList] WHERE [LastName] = @lastName" 
    ViewStateMode="Disabled" OldValuesParameterFormatString="original_{0}">
    <SelectParameters>
        <asp:ControlParameter ControlID="LastNameSearch" Name="lastName" defaultValue="" />
    </SelectParameters>
</asp:SqlDataSource>

答案 1 :(得分:0)

您必须配置数据库以执行包含和自由文本查询,这样您就可以根据符合字段条件的数据搜索数据库。

how to search a database