C#中对ACCESS数据库的条件查询

opopkoloi 2006-05-13 01:01:28
在条件查询时使用以下代码,但是总是出错~
private void button1_Click(object sender, System.EventArgs e)
{
if(radioButton1.Checked==true)
{
db1.Clear();
oleDbDataAdapter3.SelectCommand.Parameters["工号"].Value=textBox12.Text;
oleDbDataAdapter3.Fill(db1,"工资信息");
dataGrid4.DataSource=db1.Tables["工资信息"];
}
else if(radioButton2.Checked==true)
{
db1.Clear();
oleDbDataAdapter4.SelectCommand.Parameters["姓名"].Value=textBox12.Text;
oleDbDataAdapter4.Fill(db1,"工资信息");
dataGrid4.DataSource=db1.Tables["工资信息"];
}
}

private void radioButton1_CheckedChanged(object sender, System.EventArgs e)
{
textBox11.Clear();
textBox12.Clear();
}

private void radioButton2_CheckedChanged(object sender, System.EventArgs e)
{
textBox11.Clear();
textBox12.Clear();
}

错误如下:

未处理的“System.IndexOutOfRangeException”类型的异常出现在 system.data.dll 中。

其他信息: 此 OleDbParameterCollection 中未包含带有 ParameterName“工号”的 OleDbParameter。

实在没办法了,求救!SOS!
...全文
411 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Knight94 2006-05-13
  • 打赏
  • 举报
回复
不过建议字段名用英文,可能是个人习惯,用中文总觉得麻烦
opopkoloi 2006-05-13
  • 打赏
  • 举报
回复
谢谢,已经解决!
db1.Clear();
string str="SELECT * FROM 工资信息 where 工号 = @工号";
OleDbCommand dbm=new OleDbCommand (str,oleDbConnection1);
OleDbDataAdapter ole=new OleDbDataAdapter(dbm);
ole.SelectCommand.Parameters.Add("@工号",textBox11.Text);
ole.Fill(db1,"工资信息");
dataGrid4.DataSource=db1.Tables["工资信息"];
Knight94 2006-05-13
  • 打赏
  • 举报
回复
Have a try!

string tt="";
tt=textBox11.Text;
string str="SELECT * FROM 工资信息 where 工号 = @ID";
OleDbCommand dbm=new OleDbCommand (str,oleDbConnection1);
OleDbDataAdapter ole=new OleDbDataAdapter(dbm);
ole.SelectCommand.Parameters.Add("@ID",textBox11.Text);
oleDbDataAdapter3.Fill(db1,"工资信息");
dataGrid4.DataSource=db1.Tables["工资信息"];
opopkoloi 2006-05-13
  • 打赏
  • 举报
回复
我改进了下代码,这样下,能查询了,但是在datagrid中显示的是整个数据表,我要求是显示我条件查询的那一条记录,不知道哪里错了~
string tt="";
tt=textBox11.Text;
string str="SELECT * FROM 工资信息 where 工号 = '"+ tt + "'";
OleDbCommand dbm=new OleDbCommand (str,oleDbConnection1);
OleDbDataAdapter ole=new OleDbDataAdapter(dbm);
ole.SelectCommand.Parameters.Add("@工号",textBox11.Text);
oleDbDataAdapter3.Fill(db1,"工资信息");
dataGrid4.DataSource=db1.Tables["工资信息"];
Knight94 2006-05-13
  • 打赏
  • 举报
回复
你的sql语句如何写的,还有如何初始化oleDbDataAdapter3这个对象的。
opopkoloi 2006-05-13
  • 打赏
  • 举报
回复
还是不行啊~

未处理的“System.IndexOutOfRangeException”类型的异常出现在 system.data.dll 中。

其他信息: 此 OleDbParameterCollection 中未包含带有 ParameterName“@工号”的 OleDbParameter。
webwait 2006-05-13
  • 打赏
  • 举报
回复
oleDbDataAdapter3.SelectCommand.Parameters["@工号"].Value=textBox12.Text;

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧