EnumType = reader["EnumTypeId"] == DBNull.Value ? EnumType.None : (EnumType)(int)reader["EnumTypeId"];
我想如果reader["EnumTypeId"]
爲空,它應該指定EnumType.None
值,但它仍然試圖將空值轉換爲明顯導致異常的int值。爲什麼DBNull.Value在這裏不起作用?
我嘗試以下,並沒有工作,要麼:不要使用Enums
的
EnumType = reader["EnumTypeId"] == null ? EnumType.None : (EnumType)(int)reader["EnumTypeId"];
,我徑自決定用一個可空int
,所以現在我的代碼略有不同,但它仍然不DBNull.Value
,null
,或GetOrdinal...
intType= reader["intType"] == DBNull.Value ? null : (int?)reader["intType"];
也行,爲什麼我必須做投,而不是僅僅一個一個演員?
嘗試這一個'讀者[ 「EnumTypeId」] == null' – Sender