我試圖訪問一個存儲過程,我得到一個錯誤,指出:的SqlParameter不正常
過程或函數「getbug」需要參數「@bugID」,但未提供。
這是我的代碼來調用該過程。
SqlCommand cmd = new SqlCommand("getbug", cn);
cmd.Parameters.Add(new SqlParameter("bugID", bugID));
錯誤ID設置爲1089(和類型爲int)
我想不通,爲什麼這是不行的。
我試圖訪問一個存儲過程,我得到一個錯誤,指出:的SqlParameter不正常
過程或函數「getbug」需要參數「@bugID」,但未提供。
這是我的代碼來調用該過程。
SqlCommand cmd = new SqlCommand("getbug", cn);
cmd.Parameters.Add(new SqlParameter("bugID", bugID));
錯誤ID設置爲1089(和類型爲int)
我想不通,爲什麼這是不行的。
試試這個
SqlCommand cmd = new SqlCommand("getbug", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@bugID", bugID));
嘗試添加 「@」 到參數
SqlCommand cmd = new SqlCommand("getbug", cn);
cmd.Parameters.Add(new SqlParameter("@bugID", bugID));
更多的代碼會有所幫助。這裏有幾個想法。
如果您正在調用存儲過程,則需要指定CommandType
。此外,您可以使用AddWithValue
方法縮短您的代碼。
using (var cn = new SqlConnection("your connection string"))
{
using (var cmd = new SqlCommand("getbug", cn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@bugID", bugID);
//etc...
}
}
只需要注意,向參數添加「@」不能解決問題。 – 2010-04-04 23:07:45
如果添加@不起作用,您可以向我們展示更多代碼。你這樣做的方式*應該*工作 – CResults 2010-04-04 23:08:58
啊,是否加入cmd.CommandType = CommandType.StoredProcedure工作?我認爲它默認爲.Text – CResults 2010-04-04 23:10:54