没有给出一个或多个所需参数的值c#

时间:2015-04-27 14:40:54

标签: c# visual-studio-2013 oledbdatareader

当我运行此代码编译的结果时,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的地方抛出

感谢阅读!

1 个答案:

答案 0 :(得分:1)

AFAIK ,您不能将[]*一起使用,并且由于OLE DB提供程序不关心命名参数,因此可能认为这个[*]是一个参数,并期望它的参数值。

如果除此之外的一切都很好,这应该有用;

@"select v.* from Visite v, Infirmière i where v.[code_inf] = i.[code_inf]"

对于[*],数据库引擎认为您的列名称为* ,而不是v表中的所有列。