2010-12-10 73 views
7

我正在通過C#訪問MS Access 2007數據庫,並且每當我嘗試讀取空單元格時都會收到異常。檢查數據庫單元格是否爲空

具體來說,我試圖讀取一個「日期/時間」單元,它可以是也可以不是空的。 我正在使用OLE DB,並填充了一個DataSet。這些條件都不起作用:

DataSet dataSet = GetDataSet(); 
DataRow row = dataSet.Tables[0].Rows[0]; 
DateTime time = new DateTime(); 
time = (DateTime)row[5]; // Exception thrown 

如何在嘗試分配它之前檢查單元格是否爲空?這些工作都沒有:

if(row[5] == null) ; 
if(row[5] == DBNull) ; 
if(row[5] == (String)"") ; 

編輯:我應該提到:當我調試,它說,行[5]爲「System.DBNull」,但我得到一個錯誤,當我嘗試「如果(行[5] == DBNULL)「。錯誤說「DBNULL是一種類型,在給定的上下文中無效」。

+2

「細胞」 是你在電子表格中參考;它是處理數據庫時記錄中的特定列。 – 2010-12-10 05:41:46

回答

9

您可以像下面這樣檢查它。

if (row[5] == DBNull.Value) 
{ 
    // value is null 
} 
else if (String.IsNullOfEmpty(Convert.ToString(row[5])) 
{ 
    // value is still null 
} 
else 
{ 
    // value is not null here 
} 
3
if(row[5] == DBNull.Value) 
+0

謝謝。而已。忘記「.Value」 – Eric 2010-12-10 05:51:32

+0

:),歡迎您 – TalentTuner 2010-12-10 05:54:01

0
if(Convert.IsDBNull(row[5])) 
{ 
... 
}