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

问题描述:

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

这里是我的.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> 

现在我想搜索的字符串,并将其与数据库中的第二列姓氏并且只显示姓氏匹配的记录。任何帮助将不胜感激

这应该是非常接近,从内存做它,但它可能会有点关闭。这应该足以让你在正确的方向前进,虽然我觉得

<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> 

你必须配置于数据库来执行包含和自由文本querys,你可以到你的数据库的基础上的数据进行搜索这种办法,符合你的领域标准。

how to search a database