在 C# 中將空值賦給 SqlParameter
提供的程式碼遇到錯誤:「無法從 DBNull 隱式轉換為 int。」 此錯誤源自於條件運算符,它嘗試將 int 值或 DBNull 類型值賦給 SqlParameter 的 Value 屬性。不幸的是,這些資料類型不相容,運算子無法確定合適的回傳類型。
解決方法是將 AgeItem.AgeIndex 值強制轉換為 object 類型或使用空合併運算子 (??)。將 AgeItem.AgeIndex 強制轉換為 object 類型可確保它可以賦給 Value 屬性(Value 屬性需要一個 object)。或者,使用 ?? 運算子可以採用更簡潔的方法:
<code class="language-csharp">SqlParameter[] parameters = new SqlParameter[1]; SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int); planIndexParameter.Value = (object)AgeItem.AgeIndex ?? DBNull.Value; parameters[0] = planIndexParameter;</code>
在這種情況下,?? 會評估 AgeItem.AgeIndex,如果它是 null,則將參數的值賦給 DBNull.Value。透過利用型別轉換或空合併運算符,我們可以解決上述錯誤並將所需值賦給 SqlParameter 的 Value 屬性。
以上是在 C# 中分配給 SqlParameter 時如何處理空值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!