没有为一个或多个必需参数给出值 c#

No value given for one or more of the required parameters c#

当我 运行 此代码的编译结果时 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 错误,但我真的看不出第一行有什么问题,而且我一直收到此异常。我已经多次检查列和表的名称。

这个

no value given for one or more of the required parameters

被扔到我创建 OleDbDataReader 我认为的地方。

感谢阅读!

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

如果除此之外一切正常,这应该有效;

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

使用 [*],数据库引擎认为您有一个名为 * 的列名 ,而不是 v [=29] 中的所有列=].