SQL Server中的NULL和.NET中的DBNULL以及面向程式設計語言中的NULL的區別

來源:互聯網
上載者:User

  閱讀目錄

  一:SQL Server中的NULL和.NET中的DBNULL以及面向程式設計語言中的NULL的區別

  二:執行個體

  一:SQL Server中的NULL和.NET中的DBNULL以及面向程式設計語言中的NULL的區別

  1:SQL Server中的NULL  

    SQL Server中的空值用“NULL“表示,等同於“沒有輸入的值”,在T-SQL命令中,判斷一個值是不是空值,要使用“IS NULL”,而不是使用“=NULL”,在SQL Server資料庫中的某個表插入一個新的行,新行中沒有輸入值的欄位都是“空值”,在SQL Server資料庫中的某個表的有數值的資料編輯地區,用Ctrl+0鍵,可將該儲存格變成“空值”。

  

  我們新建立一行,只給Name這個欄位寫上“賈七”,會發現Subject欄位和後面的欄位都為“NULL”。

  

  2:.NET中的DBNULL

    ADO.NET資料提供者從資料庫中擷取資料時,在欄位沒有有效值時,也就是上面所說的“NULL”,會自動分配為DBNULL值,所以SQL Server中的NULL等同於.NET中的DBNULL。

    在.NET中,DBNULL類型是一個單獨的類,表示未初始化的變數或者不存在的資料庫列。

  3:面向程式設計語言中的NULL

    面向程式設計語言中的NULL表示不存在某個對象的引用,所以SQL Server中和C#中的NULL是完全不相同的。

  舉例

  已一個學生為例子,age年齡資料的值是NULL時,並不代表這個學生沒有年齡,每個人都會有年齡,而是尚未設定或者還不知道而已,聲明一個可以為空白的年齡變數如下

   int? age = null;

   二:執行個體

 1                 SqlConnection conn = SqlHelper.GetConnection(Convert.ToInt16(CustomEnum.DBCallType.其他庫)); 2                 string sqlText = "SELECT * FROM NameAndSubjectAndGrade WHERE ID = 15"; 3                 SqlDataReader dr = SqlHelper.ExecuteReader(conn, CommandType.Text, sqlText); 4                 if (dr.Read()) 5                 { 6                     if (dr["Name"] is DBNull) 7                     { 8                         this.txtName.Text = ""; 9                     }10                     else11                     {12                         this.txtName.Text = dr["Name"].ToString();13                     }14                     if (dr["Subject"] is DBNull)15                     {16                         this.txtSubject.Text = "";17                     }18                     else19                     {20                         this.txtSubject.Text = dr["Subject"].ToString();21                     }22                     if (dr["Grade"] is DBNull)23                     {24                         this.txtSubject.Text = "";25                         //也可以寫成如下方式,DBNULL是可以轉化為String類型的,轉化後的值為""26                         this.txtSubject.Text = dr["Grade"].ToString();27                     }28                     else29                     {30                         this.txtGrade.Text = dr["Grade"].ToString();31                     }32                 }

 

相關文章

聯繫我們

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