我遇到了麻烦,因为我使用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();
}
我在我的智慧结束......帮助别人!提前谢谢。
答案 0 :(得分:1)
"delete * from AccountPositions where BrokerAccountKey=@variableName"
如果我没记错的话,我认为您需要为参数添加@。
不喜欢你使用?用于变量名称。我刚试了这个,它运行正常。
编辑 *
尝试将参数定义略有不同。
cmd1.Parameters.AddWithValue("@variableName", txtSomeValue.text);
请确保txtSomeValue.text与您在访问数据库中定义的值相同。
如果这些都不起作用,那么当访问尝试提交查询时,很可能“brokerAccountKey”实际上是未定义的。