C#z中關於存取資料庫NULL和0的問題

來源:互聯網
上載者:User

標籤:

需求: 註冊使用者的時候,對於年齡,地址,姓名等欄位如果客戶不想填寫,這說明這些欄位的值是“不知道”,

但是,如果按照一般的觀點,存入資料庫的則是0,或者“ ”空,這是不符合要求的,因此,需要存入資料庫的應該是null

此時,需要DbNull的用法

//儲存資料的時候這樣使用//擷取控制項輸入的字元string name = txtName.Text;string age = txtAge.Text;string height = txtHeight.Text;//如果沒使用者沒有輸入姓名,則Text屬性為空白字串object objName;if(name.Length<=0){    objName = DBNull.Value;//DBNull.Value用來表示資料庫中的值}else{    objName = name;}object objAge;if(age.Length<=0){    objAge = DBNull.Value;}else{    objAge = age;}
//讀取資料的時候這樣使用DataRow row = table.Rows[0];string name;if(row["Name"]==DBNull.Value){    name=null;}else{    name = (string)row["Name"];}int? age;//int age 不行,因為int不可以為null,加?號,表示一個可空的int類型if(row["Age"]==DBNull.Value){    age = null;}else{    age = (int)row["Age"];}int Height = (int)row["Height"];


微軟MSDN的解釋如下:

DBNull 類表示一個不存在的值。 例如,在資料庫的表中,某一行的某列中可能不包含任何資料。 即,該列被視為根本不存在,而不只是沒有值。 一個表示不存在的列的 DBNull 對象。 此外,COM Interop使用 DBNull 類來區分 VT_NULL 變數(指示不存在的值)和 VT_EMPTY 變數(指示未指定的值)。

DBNull 類型是一個單獨的類,這意味著只有一個 DBNull 對象存在。 DBNull.Value 成員表示單獨的 DBNull 對象。DBNull.Value 可用於將不存在的值顯式分配給資料庫欄位,但大多數 ADO.NET 資料提供者在欄位沒有有效值時會自動分配 DBNull 值。 您可以通過將從資料庫欄位檢索到的值傳遞給 DBNull.Value.Equals 方法,確定該欄位值是否為 DBNull 值。 然而,有些語言和資料庫物件提供一些方法,可以更容易地確定資料庫欄位值是否為DBNull.Value。 這些方法包括 Visual Basic 的 IsDBNull 函數、Convert.IsDBNull 方法、DataTableReader.IsDBNull 方法和 IDataRecord.IsDBNull 方法。

請勿將物件導向的程式設計語言中的 null 概念與 DBNull 對象混淆。 在物件導向的程式設計語言中,null 表示缺少對象的引用。 DBNull 表示未初始化的變數或不存在的資料庫列。


C#z中關於存取資料庫NULL和0的問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.