龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Sql Server开发 >

SQL中的NULL和.NET中的DBNULL以及面向编程语言中的NULL分析

时间:2013-01-03 18:08来源:未知 作者:admin 点击:
分享到:
本文章介绍了关于SQL中的NULL和.NET中的DBNULL以及面向编程语言中的NULL分析,有需要了解同学可看看。 一:SQL Server中的NULL和.NET中的DBNULL以及面向编程语言中的NULL的区别 1:SQL Server中的
本文章介绍了关于SQL中的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;

   二:实例

SqlConnection conn = SqlHelper.GetConnection(Convert.ToInt16(CustomEnum.DBCallType.其他库));
                 string sqlText = "SELECT * FROM NameAndSubjectAndGrade WHERE ID = 15";
                 SqlDataReader dr = SqlHelper.ExecuteReader(conn, CommandType.Text, sqlText);
                 if (dr.Read())
                 {
                     if (dr["Name"] is DBNull)
                     {
                         this.txtName.Text = "";
                     }
                     else
                     {
                         this.txtName.Text = dr["Name"].ToString();
                     }
                     if (dr["Subject"] is DBNull)
                     {
                         this.txtSubject.Text = "";
                     }
                     else
                     {
                         this.txtSubject.Text = dr["Subject"].ToString();
                     }
                     if (dr["Grade"] is DBNull)
                     {
                         this.txtSubject.Text = "";
                         //也可以写成如下方式,DBNULL是可以转化为String类型的,转化后的值为""
                         this.txtSubject.Text = dr["Grade"].ToString();
                     }
                     else
                     {
                         this.txtGrade.Text = dr["Grade"].ToString();
                     }
                 }

 


精彩图集

赞助商链接