c# 判斷 值 是否為NUll

來源:互聯網
上載者:User

(1) NULL 
null 關鍵字是表示不引用任何對象的Null 參考的文字值。null 是參考型別變數的預設值。那麼也只有引用型的變數可以為NULL,如果 int i=null,的話,是不可以的,因為Int是實值型別的。C#允許使用==或!=來判斷是否為NULL,例如:if(dataGridView2.CurrentRow != null) ...。

(2) DBNULL 
DBNull在DotNet是單獨的一個類型,該類只能存在唯一的執行個體,DBNULL.,DBNull唯一作用是可以表示資料庫中的字串,數字,或日期,為什麼可以表示原因是DotNet儲存這些資料的類(DataRow等)都是以 object 的形式來儲存資料的。對於 DataRow , 它的 row[column] 返回的值永遠不為 null , 要麼就是具體的為column 的類型的值 。 要麼就是 DBNull 。 所以 row[column].ToString() 這個寫法永遠不會在ToString那裡發生NullReferenceException。DBNull 實現了 IConvertible 。但是,除了 ToString 是正常的外,其他的ToXXX都會拋出不能轉換的錯誤。

 

判斷DBNULL的方法:

1、用OleDbDataReader.isDBNull()方法,()內是列序號

2、因為上面方法需要知道列序號,而很多時候我們只知道列名,那麼乾脆用OleDbDataReader[“列名”].toString() != ""來判斷它的值不是空或者DBNull

3、用Convert.isDBNull(判斷對象)方法進行判斷,()內填寫要判斷的運算式

 

--------------------------------------------------------------------------------------------------------------------------

註:

1、另外,當一個變數(非引用變數)聲明,但是未初始化時,該變數的預設值並非NULL,而為系統設定的預設值,如Bool型的預設值為FALSE。

bool isHere;

messgebox.show(isHere.tostring());   //儘管沒有對isHere賦值,但仍可以使用其預設值,FALSE

 

2、如果需要使用可以使用null值的int、bool等類型型,可以使用int?、bool?類型。還可以將 == 和 != 運算元用於可為 null 的類型,如:if (x != null) y = x;

樣本1:

   1: int? y = 10;

   2: if (y != null)

   3: {

   4:     System.Console.WriteLine(y.Value);

   5: }

   6: else

   7: {

   8:     System.Console.WriteLine("Undefined");

   9: }

 

樣本2:

一個根據bool?值設定comboBox控制項的屬性。CTIsFirstTime為ComboBox控制項名。

   1: public bool? IsFirstTime  //允許該值為空白

   2:         {

   3:             get

   4:             {

   5:                 if (CTIsFirstTime.SelectedIndex == -1)   //當comboBox什麼都沒選時,SelectedIndex值為-1

   6:                     return null;

   7:                 else

   8:                 {

   9:                     if (CTIsFirstTime.SelectedIndex == 0)

  10:                         return true;

  11:                     else

  12:                         return false;

  13:                 }

  14:             }

  15:             set

  16:             { 

  17:                 if (value == null)

  18:                     CTIsFirstTime.SelectedIndex = -1; 

  19:                 else

  20:                 {

  21:                     if (value == true)

  22:                         CTIsFirstTime.SelectedIndex = 0; 

  23:                     else

  24:                         CTIsFirstTime.SelectedIndex = 1; 

  25:                 }

  26:             }

  27:         }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.