我有一个 Windows 窗体应用程序。我必须使用“Like”运算符从 MySQL 数据库中搜索数据。我已经使用占位符(@test,见下面的代码)作为搜索词,但它没有发生。
简单来说,我有一个名为 txtSearch 的 TestBox,我可以在其中部分或全部输入学生的姓名。我需要在 DataGrid 上检索与搜索条件匹配的所有条目。
请检查我下面的代码,让我知道我错在哪里(下面删除了 Conn 字符串):
try
{
dataGridView1.Visible = true;
BindingSource bs = new BindingSource();
DataTable newadm = new DataTable();
String term = txtSearch.Text;
string db = ----Connection String goes here----
bs.DataSource = newadm;
this.dataGridView1.DataSource = bs;
MySqlConnection conn = new MySqlConnection(db);
conn.Open();
string s = "select * from newadm where firstname like '%@term%' OR lastname like '%@term%'";
MySqlCommand cmd = new MySqlCommand(s, conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("@term", MySqlDbType.VarChar).Value = txtSearch.Text;
MySqlDataAdapter da = new MySqlDataAdapter();
da.SelectCommand = new MySqlCommand(s, conn);
da.Fill(newadm);
da.Update(newadm);
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
使用此代码(以及它的许多变体),我在 DataGrid 中没有得到任何结果。如果我删除“@Term”占位符并替换确切的术语,它就可以工作。
请帮忙。提前致谢。