更新某些参数的Access数据库查询

时间:2010-06-14 05:54:00

标签: c# .net ms-access insert-update

我使用MS Access作为数据库并使用c#,。net更新其中的一些记录。但这是错误的说法

“没有给出一个或多个必需参数的值。”

表中有5个列,我只想更新2个,因为我已经编写了像

这样的查询
"update User_DTL set user_role_id = '" + _UserRole + "', auth_id ='" + _authId + "'"
                                    + " WHERE Id = '" + _Id + "' ";

其中_UserRole,_ authId,_Id是字符串。

可能是错误。我是否需要在更新语句中提供每个参数,或者还有其他方法。

由于

2 个答案:

答案 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注入漏洞。