如何使用文本框检索记录?

时间:2012-08-25 03:20:45

标签: c# asp.net sql sql-server sql-server-2005

我正在尝试使用通配符查询来显示gridview中的行,但它不符合标记......

protected void Button1_Click(object sender, EventArgs e)
{
    SqlCommand com = new SqlCommand("select * from Alphabates where Word 
                     like'"+TextBox1.Text+"'", new SqlConnection("data source=
                     USER\\SQLEXPRESS;initial catalog=vicky;integrated 
                     security=true"));

    try
    {
        com.Connection.Open();
        GridView1.DataSource = com.ExecuteReader();
        GridView1.DataBind();
        com.Connection.Close();
        com.Connection.Dispose();
    }
    catch (SqlException ex)
    {
        Label1.Text = ex.Message;
    }
}

2 个答案:

答案 0 :(得分:2)

试试这个:

更改查询以在文本框值

周围添加%

通配符搜索需要%符号才能获得所需的结果,否则它将与使用等于(=)符号相同

"select * from Alphabates where Word like %'"+TextBox1.Text+"%'"

根据你的评论,如果你想要以给定单词开头的行,那么:

"select * from Alphabates where Word like '"+TextBox1.Text+"%'"

例如:

select * from Alphabates where Word like 'Some value'

相同
select * from Alphabates where Word ='Some value'

所以你应该把它改成

select * from Alphabates where Word like '%Some value%'

答案 1 :(得分:0)

请注意sql注入。

您应该在文本值周围添加%,然后使用参数化的sql来运行它,而不是使用字符串组合它。你会被各种聪明的sql打开。

看一下这里的例子:

http://www.codinghorror.com/blog/2005/04/give-me-parameterized-sql-or-give-me-death.html