2010-06-14 86 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注入漏洞。