(1) NULL
null 關鍵字是表示不引用任何對象的空引用的文字值。null 是引用類型變量的默認值。那么也只有引用型的變量可以為NULL,如果 int i=null,的話,是不可以的,因為Int是值類型的。
(2) DBNULL
DBNull在DotNet是單獨的一個類型,該類只能存在唯一的實例,DBNULL.,DBNull唯一作用是可以表示數據庫中的字符串,數字,或日期,為什么可以表示原因是DotNet儲存這些數據的類(DataRow等)都是以 object 的形式來儲存數據的。對於 DataRow , 它的 row[column] 返回的值永遠不為 null , 要么就是具體的為column 的類型的值 。 要么就是 DBNull 。 所以 row[column].ToString() 這個寫法永遠不會在ToString那里發生NullReferenceException。DBNull 實現了 IConvertible 。但是,除了 ToString 是正常的外,其他的ToXXX都會拋出不能轉換的錯誤。
(3) ""和String.Empty
這兩個都是表示空字符串,其中有一個重點是string str1="" 和 string str2=null 的區別,這樣定義后,str1是一個空字符串,空字符串是一個特殊的字符串,只不過這個字符串的值為空,在內存中是有准確的指向的,string str2=null,這樣定義后,只是定義了一個string 類的引用,str2並沒有指向任何地方,在使用前如果不實例化的話,都將抱錯。可以使用String.IsNullOrEmpty()進行判斷。
(4) Convert.IsDBNull()
Convert.IsDBNull()返回有關指定對象是否為 DBNull 類型的指示,即是用來判斷對象是否為DBNULL的。其返回值是True或Flase。如Convert.IsDBNull(dr["Time"])==false;