MS-Access、OleDbCommand、获取“未为一个或多个所需参数给出值”
我遇到了麻烦,因为我对使用 Microsoft Access 的 OleDb 非常生疏。我向命令添加参数,然后执行查询,然后得到“没有为一个或多个必需参数给出值”。
void LoadPositions(string accountKey, IEnumerable<Positions> positions)
{
OleDbCommand cmd1 = new OleDbCommand("delete from AccountPositions where BrokerAccountKey=?", conn, tran);
cmd1.Parameters.Add("?", OleDbType.VarChar).Value = brokerAccountKey;
cmd1.ExecuteNonQuery();
}
我无计可施...帮助某人!提前致谢。
I'm having trouble because I'm very rusty with using OleDb with Microsoft access. I add parameters to the command, and execute the query and I get "No value given for one or more required parameters."
void LoadPositions(string accountKey, IEnumerable<Positions> positions)
{
OleDbCommand cmd1 = new OleDbCommand("delete from AccountPositions where BrokerAccountKey=?", conn, tran);
cmd1.Parameters.Add("?", OleDbType.VarChar).Value = brokerAccountKey;
cmd1.ExecuteNonQuery();
}
I'm at my wits' end... help somebody! Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果我没记错的话,我认为您需要为您的参数添加@。
它不喜欢你使用?为变量名。我刚刚尝试了一下,效果很好。
编辑*
尝试定义稍微不同的参数。
只需确保 txtSomeValue.text 与您在访问数据库中定义的值相同。
如果这些都不起作用,那么当访问尝试提交查询时,很可能“brokerAccountKey”实际上是未定义的。
I think you need to add the @ for your parameters if I remember correctly for access.
It's not liking you using the ? for variable name. I just tried this out and it works fine.
EDIT *
Try defining your parameters a little different.
Just make sure that txtSomeValue.text is the same value as what you have defined in the access db.
If none of this works, then most likely "brokerAccountKey" is actually undefined when access is trying to commit the query.