使用.NET 4和C#。所有這些拋出一個錯誤:如何將空值傳遞給使用存儲過程的SqlDataSource?
sdsTypeinfo.SelectParameters.Add("@TypeCode", DbType.Boolean, DBNull.Value);
sdsTypeinfo.SelectParameters.Add("@TypeCode", DBNull.Value);
sdsTypeinfo.SelectParameters.Add("@TypeCode", null);
sdsTypeinfo.SelectParameters.Add("@TypeCode", "");
該錯誤表明過程沒有得到任何值。
Procedure or function 'Typeinfo' expects parameter '@TypeCode', which was not supplied.
回答
你不需要在參數的名稱@。這比添加參數使用一個SqlCommand調用存儲過程時不同,在這種情況下要這樣的事:
cmd.Parameters.AddWithValue("@TypeCode", DBNull.Value);
此外,DBNull.value在上述可接受的參數,但接受了NULL值時將SelectParameters添加到SqlDataSource只是簡單地爲「null」。
它拋出什麼樣的錯誤?在Sql服務器端或客戶端?什麼是錯誤信息? – Icarus
這是一個錯字嗎?該錯誤期望該參數被稱爲'@ pTypeCode',並且您傳入'@TypeCode' ... –