【发布时间】:2019-11-19 02:57:38
【问题描述】:
我正在尝试使用将显示在 datagridview 中的文本框来实现搜索功能。我希望它是这样,无论我试图搜索哪一列,无论是从项目名称还是位置,它都会显示在 datagridview 中。但是,当我在文本框中输入内容时,datagridview 不会改变。谢谢一堆。代码如下:
string sql = "SELECT * FROM Project "+"WHERE(ProjectName LIKE @Search)"+ " OR(NumberOfUnits LIKE @Search)"+ "OR(Location LIKE @Search)";
using (var con = new SqlConnection(@"Data Source=HAZWAN-PC\SQLEXPRESS;Initial Catalog=wantest2;Integrated Security=True"))
{
using (var cmd = new SqlCommand(sql, con))
{
cmd.Parameters.AddWithValue("@Search", "%" + txtSearch.Text + "%");
con.Open();
try
{
cmd.ExecuteNonQuery();
}
catch (SqlException er)
{
MessageBox.Show("There was an error accessing your data. DETAIL: " + er.ToString());
}
dataGridView1.DataSource = null;
BindGrid();
}
}
【问题讨论】:
-
请相应地查看minimal reproducible example 和edit 代码...目前还不清楚您完全忽略结果的数据库查询会发生什么...以及`dataGridView1.DataSource =空`...
-
尝试在 AddWithValue() 语句之前将任何“未指定”字段值设置为 %。
-
您期望结果来自哪里?您正在调用不会返回结果集的 ExecuteNonQuery。我认为这里缺少一些细节。此外,在将 DataSource 设置为 null 之后,您正在调用 BindGrid()。对吗?
标签: c# sql search datagridview