如何解决尝试从 Access 数据库中搜索时出现 C# OleDb 异常“没有为一个或多个必需参数提供值”
我正在尝试使用 Windows 窗体应用程序在 Access 数据库上搜索输入值,找到的结果应显示在文本框中。但我不断收到此错误。
这是我的代码:
private void btn_search_Click(object sender,EventArgs e)
{
string search = "";
SearchForm popup = new SearchForm();
DialogResult dialogresult = popup.ShowDialog();
if (dialogresult == DialogResult.OK)
{
search = SearchForm.item;
if (search != "")
{
Access_Connections.sql = "SELECT * FROM Learners WHERE @val IN(ID,Learner_name,Learner_surname,Grade,School,Gender,Blood_group,Home_language,Church_relation,Hostel_block);";
Access_Connections.cmd.Parameters.AddWithValue("@val",search);
Access_Connections.cmd.Parameters.Clear();
Access_Connections.cmd.CommandType = CommandType.Text;
Access_Connections.cmd.CommandText = Access_Connections.sql;
Access_Connections.cmd.Connection = Access_Connections.con;
Access_Connections.openConnection();
Access_Connections.rd = Access_Connections.cmd.ExecuteReader();
while (Access_Connections.rd.Read())
{
text_name.Text += Access_Connections.rd["Learner_name"].ToString();
text_surname.Text += Access_Connections.rd["Learner_surname"].ToString();
text_grade.Text += Access_Connections.rd["Grade"].ToString();
text_school.Text += Access_Connections.rd["School"].ToString();
}
Access_Connections.closeConnection();
}
else if (dialogresult == DialogResult.Cancel)
{
Console.WriteLine("You clicked either Cancel or X button in the top right corner");
}
popup.dispose();
}
}
解决方法
你把它颠倒过来了:
"SELECT * FROM Learners WHERE (Learner_name=@val OR Learner_surname=@val OR Grade=@val OR School=@val OR Gender=@val OR Blood_group=@val OR Home_language=@val OR Church_relation=@val OR Hostel_block=@val);"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。