我想讀取數據庫中的值,我知道在我正在尋找的標準爲空。 所以我有這種檢查方法:ld.Percentage = reader["DataWin3Data"] != DBNull.Value ? Convert.ToDouble(reader["DataWin3Data"]) : double.MinValue;
我曾經使用它之前,一個字段可以爲空,它沒有問題。我不完全確定在這種情況下如何解決這個問題。我在下面列出了我的相關代碼。有空值時,如何改變我目前正在做的事情而不會產生這個錯誤?對象不能使用DBNull.Value從DBNull轉換爲其他類型?轉換
ld.Percentage = reader["DataWin3Data"] != DBNull.Value ? Convert.ToDouble(reader["DataWin3Data"]) : double.MinValue;
ld.TotalCases = reader["DataWin8Data"] != DBNull.Value ? Convert.ToInt32(reader["DataWin8Data"]) : int.MinValue;
ld.TotalPercentage = reader["DataWin7Data"] != DBNull.Value ? Convert.ToDouble(reader["DataWin7Data"]) : double.MinValue;
'Double.TryParse'怎麼樣?可能有更多的代碼行,但更安全。 – DonBoitnott
@DonBoitnott可能不是一個壞主意,如果它是從讀者中走出來的話,它有什麼關係? –
不應該。請參閱:http://stackoverflow.com/questions/1363185/parsing-a-decimal-from-a-datareader – DonBoitnott