2010-06-14 91 views
1

我正在使用MS Access作为数据库并使用c#,.net更新其中的某些记录。但它给错误说更新某些参数的Access数据库查询

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

有表5个colums,我想只有2更新,为我写了像

"update User_DTL set user_role_id = '" + _UserRole + "', auth_id ='" + _authId + "'" 
            + " WHERE Id = '" + _Id + "' "; 

其中_UserRole,_authId,_id都是字符串查询。

什么可能是错误。我是否需要在更新语句中给出每个参数或者有其他方法。

感谢

回答

1

每当你遇到这样的错误,坚持一个断点,并检查您的查询,以确保它看起来像您期望。例如,查询中是否实际存在_UserRole,_authId和_Id。

在准备语句之前,您还可以添加一些防御性代码来检查它们 - 此示例检查以确保_UserRole不为空或空。

if (!string.IsNullOrEmpty(_UserRole)) { ... 
1

硬盘,没有看到你的代码的说法,但基于我猜下列之一的错误消息:

1)下列领域中User_DTL不存在的:user_role_id,AUTH_ID ,Id
2)_UserRole,_authId,_Id包含单引号字符。

解决此问题的最佳方法是打印实际的连接查询字符串,然后在Access中打开SQL查询并运行它。这应该是非常明显的问题。

顺便说一句:你可能有这个代码的一些SQL注入漏洞。