解決 The parameterized query ‘…’ expects the parameter ‘@param’, which was not supplied. 錯誤

最近在寫程式碼時,執行SqlCommand時出現此錯誤:

The parameterized query ‘@someParam someType….’ expects the parameter ‘@certainParam’, which was not supplied.

但是我的確有新增此參數:

cmd.Parameters.Add(new SqlParameter(“certainParam", SqlDbType.VarChar, 3) { Value = certainStringVar });

只是在測試時,certainStringVar為null。我一直以為SqlParameter的值可以接受null,但實際上會造成SQL Server忽略該SqlParameter。改寫成:

cmd.Parameters.Add(new SqlParameter(“certainParam", SqlDbType.VarChar, 3) { Value = (String.IsNullOrEmpty(certainStringVar) ? DBNull.Value : (object)certainStringVar) });

就可以了。

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s