24
param7[1].Value = tbLastName.Text.Length > 0 ? tbLastName.Text : DBNull.Value;
爲什麼這是不可能的,並且有什麼建議可以嘗試?對於20個參數,如果/ else是不行的。無法確定條件表達式的類型,因爲「字符串」和「System.DBNull」之間沒有隱式轉換
param7[1].Value = tbLastName.Text.Length > 0 ? tbLastName.Text : DBNull.Value;
爲什麼這是不可能的,並且有什麼建議可以嘗試?對於20個參數,如果/ else是不行的。無法確定條件表達式的類型,因爲「字符串」和「System.DBNull」之間沒有隱式轉換
的問題是,(如錯誤消息指示)條件表達式需要在兩個分支或者相同類型的,或者需要有從類型到另一箇中的一個的隱式轉換。在你的情況下,沒有一個,所以你會得到錯誤。一個快速的解決將施放的一個值來(object)
(這是很好的,因爲DbParameter.Value
是object
型的反正。)
所以這應該爲你工作:
param7[1].Value = tbLastName.Text.Length > 0 ? tbLastName.Text : (object)DBNull.Value;