無法隱式轉換DBNull為Int?
程式碼片段中出現錯誤:「無法從DBNull隱式轉換為int」。這是由於?:運算子的性質造成的,因為它要求其計算的表達式的類型相同。
在本例中,第一個表達式(AgeItem.AgeIndex)是整數,而第二個表達式(DBNull.Value)是DBNull型別。這些類型不相容,導致錯誤。
解決方案:強制轉換為物件或使用空合併運算子
要解決此問題,您可以選擇以下兩種方法:
<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>
<code class="language-csharp">SqlParameter[] parameters = new SqlParameter[1]; SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int); planIndexParameter.Value = AgeItem.AgeIndex ?? DBNull.Value; parameters[0] = planIndexParameter; </code>
這些解決方案可讓您將整數或DBNull.Value賦值給SqlParameter,而不會遇到任何類型轉換錯誤。
以上是如何處理 C# 中的「無法隱式地將 DBNull 轉換為 Int」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!