当我运行此代码编译的结果时,visual studio会抛出上述异常:
requete = @"select v.[*] from Visite v, Infirmière i where v.[code_inf] = i.[code_inf]" /* +
" and i.[nom_inf]='" + nom + "'" +
" and i.[prenom_inf]='"+prenom+"'"+
" and v.[date_visite]=to_date('" + d.ToString().Substring(0, 10)+"','DD/MM/YYYY')" */
;
MessageBox.Show(requete);
OleDbCommand dbc = new OleDbCommand(requete, connec);
OleDbDataReader dr = dbc.ExecuteReader();
while(dr.Read())
{
dgv_res.Rows.Add(dr.Read());
}
dgv_res
是一个datagridview组件,connec
是一个开放的连接。
我评论了我的一部分请求,看看是否存在SQL错误,但我真的没有看到第一行出了什么问题而且我继续得到这个异常。我已经多次检查了列和表的名称。
这个
在我创建没有给出一个或多个必需参数的值
OleDbDataReader
的地方抛出。
感谢阅读!
答案 0 :(得分:1)
AFAIK ,您不能将[]
与*
一起使用,并且由于OLE DB提供程序不关心命名参数,因此可能认为这个[*]
是一个参数,并期望它的参数值。
如果除此之外的一切都很好,这应该有用;
@"select v.* from Visite v, Infirmière i where v.[code_inf] = i.[code_inf]"
对于[*]
,数据库引擎认为您的列名称为*
,而不是v
表中的所有列。