-1

我正在尝试使用通配符查询在 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;
    }
}
4

2 回答 2

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%'
于 2012-08-25T03:28:03.667 回答
0

请注意sql注入。

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

看看这里的例子:

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

于 2012-08-25T03:59:02.590 回答