將null分配給SqlParameter以下代碼給出了一個錯誤 - “沒有從DBnull到int的隱式轉換”。SqlParameter[] parameters = new SqlParameter[1]; SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int);planIndexParameter.Value = (AgeItem.AgeIndex== null) ? DBNull.Value : AgeItem.AgeIndex;parameters[0] = planIndexParameter;
3 回答

qq_遁去的一_1
TA貢獻1725條經驗 獲得超8個贊
除非在存儲過程中指定了默認值(如果使用存儲過程),否則需要在SQLCommand中將DBNull.Value作為空參數傳遞。最好的方法是在查詢執行之前為任何缺少的參數分配DBNull.Value,并且在foreach之后將執行該任務。
foreach (SqlParameter parameter in sqlCmd.Parameters){ if (parameter.Value == null) { parameter.Value = DBNull.Value; }}
否則改變這一行:
planIndexParameter.Value = (AgeItem.AgeIndex== null) ? DBNull.Value : AgeItem.AgeIndex;
如下:
if (AgeItem.AgeIndex== null) planIndexParameter.Value = DBNull.Value;else planIndexParameter.Value = AgeItem.AgeIndex;
因為在條件語句中不能使用不同類型的值,因為DBNull和int彼此不同。希望這會有所幫助。
- 3 回答
- 0 關注
- 839 瀏覽
添加回答
舉報
0/150
提交
取消