我使用MS Access作为数据库并使用c#,。net更新其中的一些记录。但这是错误的说法
“没有给出一个或多个必需参数的值。”
表中有5个列,我只想更新2个,因为我已经编写了像
这样的查询"update User_DTL set user_role_id = '" + _UserRole + "', auth_id ='" + _authId + "'"
+ " WHERE Id = '" + _Id + "' ";
其中_UserRole,_ authId,_Id是字符串。
可能是错误。我是否需要在更新语句中提供每个参数,或者还有其他方法。
由于
答案 0 :(得分:1)
每当遇到此类错误时,请插入断点并检查查询以确保其符合您的预期。例如,查询中是否存在_UserRole,_authId和_Id。
您还可以在准备语句之前添加一些防御性代码来检查它们 - 此示例检查以确保_UserRole不为null或为空。
if (!string.IsNullOrEmpty(_UserRole)) { ...
答案 1 :(得分:1)
很难说没有看到您的代码,但根据错误消息,我猜测其中一个:
1)User_DTL中不存在以下字段之一:user_role_id,auth_id,Id
2)_UserRole,_ authId,_Id包含单引号字符。
解决此问题的最佳方法是打印实际的连接查询字符串,然后在Access中打开SQL查询并运行它。这个问题应该是非常明显的。
BTW:您可能在此代码中存在一些SQL注入漏洞。