我在我的ASP.Net 4.0網頁(用C#編寫)中有一個名爲EmployeeInformation的哈希表,我想檢查Hashtable中的特定項目(「DateEff」)有一個空值。當我用調試器瀏覽代碼時,我發現EmployeeInformation [「DateEff」]的值爲{Null}。然而,當我得到這個條件:無法在C#程序中測試空哈希表值
if (EmployeeInformation["Context"].ToString() != "Existing" && EmployeeInformation["DateEff"] != null && EmployeeInformation["DateEff"].ToString() != "")
<do something here>
我的代碼看到,所有這三個條件都滿足,並繼續到代碼「做的東西在這裏」行。我試過使用
string.IsNullOrEmpty(EmployeeInformation["DateEff"])
也是,但結果是一樣的。我也檢查過EmployeeInformation包含了DateEff這個關鍵字,它的確如此。有誰知道爲什麼會發生這種情況?
基於下面的MethodMan的評論,我回過頭來看看我是如何填充Hashtable的。下面是我在做什麼:
string strDateHired = txtDateHired.Text;
if (strDateHired == string.Empty)
dtDateHired = SqlDateTime.Null;
else
dtDateHired = Convert.ToDateTime(strDateHired);
EmployeeInformation.Add("DateEff", dtDateHired);
所以問題是,我的值不爲空,這是SqlDateTime.Null。但我該如何測試?我無法將EmployeeInformation [「DateEff」]轉換爲DateTime,因爲它是空的。
是'null ||空'有一個區別,你可以顯示更多的代碼,例如你如何填充HashTable ..?你也可以更改代碼來檢查是否包含|| ContainsKey'函數 – MethodMan
注意日期是簡單類型。如果您的'DateEff'不是可以爲空的日期,它將永遠不會爲空。 – pnm