我正在尝试使用通配符查询来显示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;
}
}
答案 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