【发布时间】:2017-07-03 09:22:28
【问题描述】:
我在 sql server 数据库中有一个表,并且有一些列。
我想通过文本框搜索它,这是场景:
例如,有 3 列名为:“名称、编号、代码”
我想在文本框中输入数字 88,然后点击搜索按钮,每行包含 88 的单元格都会在网格视图中显示给我。(88 是该单元格的一部分,例如,有一个包含 2256887 的单元格,我希望显示该单元格)
我试图解决,但有两个问题。首先是:我一次只能搜索一列,其次,如果我输入 225688 ,它不会显示任何内容,直到我在文本框中输入整个 2256887 。
这是aspx页面中的代码:
<asp:Label ID="Label1" runat="server" Text="متن ورودی برای جستجو:"></asp:Label>
<asp:TextBox ID="txtSearch" runat="server"></asp:TextBox>
<asp:Button ID="btnSearch" runat="server" Text="search" OnClick="btnSearch_Click" />
<asp:GridView ID="searchresults" runat="server"></asp:GridView>
以及cs页面中的代码:
using System.Data;
using System.Data.SqlClient;
protected void btnSearch_Click(object sender, EventArgs e)
{
String strConn = "Data Source=DESKTOP-MQ1PNVA\\SQLEXPRESS;Initial Catalog=linkfinderdb;Integrated Security=True";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
SqlCommand cmd = new SqlCommand("Select * FROM linktest WHERE phone=@txtSearch", conn);
try
{
SqlParameter search = new SqlParameter();
search.ParameterName = "@txtSearch";
search.Value = txtSearch.Text.Trim();
cmd.Parameters.Add(search);
SqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);
searchresults.DataSource = dt;
searchresults.DataBind();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
conn.Close();
}
}
phone 是表中的列名。
提前致谢。
【问题讨论】:
-
您在 SQL 查询中使用 =,您想使用 LIKE。
标签: asp.net sql-server