我正在用 C# 制作一个连接到 MySQL 数据库并列出结果的应用程序。我添加了两个文本框,它们应该允许用户在两个文本框的 textchanged 事件上按用户 ID 和用户名/姓氏过滤数据。代码看起来像这样
private void tbSearchStudents_TextChanged(object sender, EventArgs e)
{
BindingSource binding = new BindingSource();
binding.DataSource = dataGridViewStudents.DataSource;
this.tsProgressBar.Visible = true;
this.tsProgressBar.Style = ProgressBarStyle.Marquee;
binding.Filter = @"students.uid LIKE '%" + this.tbSearchId.Text + @"%'
AND CONCAT_WS(' ' , students.name, students.surname)
LIKE '%" + this.tbSearchName.Text + "%'";
this.dataGridViewStudents.DataSource = binding;
this.tsProgressBar.Visible = false;
}
但是,当我运行我的程序并尝试在其中任何一个文本框中输入内容时,我得到一个 EvaluationException 异常:
The expression contains undefined function call CONCAT_WS().
当我在添加名称/姓氏之前只使用 id 文本框并且只使用students.uid LIKE '%" + this.tbSearchId.Text + @"%'
一切正常时。
到底是怎么回事?它接受LIKE
表达式但它不识别CONCAT
也CONCAT_WS
不起作用?