MS-Access,OleDbCommand,获得“没有给出一个或多个必需参数的值”

时间:2011-04-18 18:46:48

标签: c# ms-access oledb oledbcommand

我遇到了麻烦,因为我使用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();
}

我在我的智慧结束......帮助别人!提前谢谢。

1 个答案:

答案 0 :(得分:1)

"delete * from AccountPositions where BrokerAccountKey=@variableName"

如果我没记错的话,我认为您需要为参数添加@。

不喜欢你使用?用于变量名称。我刚试了这个,它运行正常。

编辑 *

尝试将参数定义略有不同。

cmd1.Parameters.AddWithValue("@variableName", txtSomeValue.text);

请确保txtSomeValue.text与您在访问数据库中定义的值相同。

如果这些都不起作用,那么当访问尝试提交查询时,很可能“brokerAccountKey”实际上是未定义的。