怎样正确理解.NET和SQL Server中“空值”
来源:互联网 发布:网络教育本科好考吗 编辑:程序博客网 时间:2024/05/14 20:06
初学数据库编程的人,经常会对“空值”产生疑问,例如通过编程新建的一个表中所有数据皆显示为,手动添加并删除文字后又变成了空白;一个字符串类型的字段,明明没有填值,却不等于"";用ADO.NET从数据库中取值,每遇到有的就出错……这需要我们正确认识.NET和SQL Server中几种不同的“空值”。
1:真正的空值
等同“没有输入的值”,可以出现在大多数类型的字段中(如果没有别的约束条件),SQL server中表示为null,显示为,手工在SQL server企业管理器中输入的方法是按Ctrl+0。它在.NET中对应System.DBNull.Value。在T-SQL命令中,判断一个值是不是空值,要用“is null”而不是“= null”;处理空值有个ISNULL函数,它使用指定的值替换null。用ADO.NET从数据库得到的空值无法自动转化为空字符串或Nothing,须手动检测:如果得到System.DBNull.Value,则赋给数据对象Nothing或其它自定义的有意义的值。
2:空字符串(零长度字符串),只出现在字符串类型(如nvarchar)的字段中,SQL server中表示为’’,显示为空白,手工在SQL server企业管理器中输入时清空一个单元格即可。它在.NET中对应System.String.Empty,也就是我们常用的""。在T-SQL命令中处理空字符串和处理一般的字符串没什么区别。用ADO.NET从数据库得到的空字符串也和一般的字符串没什么区别。
相关的概念还有VB.NET中的Nothing和对应于C#.NET中的null(注意这个null是C#.NET中的null而非SQL Server中null),它们在.NET中是表示不引用任何对象的空引用的值,在传入SQL server时,根据不同的上下文环境,可能存为真正的空值(比如在更新一个字符串类型的字段值时),也可能调用在SQL server中自定义的默认值(比如传给一个有默认值的存储过程参数),也可能因为无法进行类型转换而引发.NET异常。因此在用ADO.NET向SQL server中存储数据时,大家一定要小心使用Nothing。
- 怎样正确理解.NET和SQL Server中“空值”
- .NET和SQL Server中“空值”辨析
- .NET和SQL Server中“空值”辨析
- .NET和SQL Server中“空值”辨析
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别) [转]
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别) [转]
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别)
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别)
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别)
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别)
- 使用ADO.NET怎样从SQL Server 中检索数据
- sql server 空值,null,和0
- SQL中Where和Having的区别---正确理解
- SQL Server数据库中处理空值时常见问题
- 避免Access和SQL Server的空值冲突
- 避免Access和SQL Server的空值冲突
- 怎样在SQL Server中查询带单引号的值
- SQL Server 和Dreamweaver怎样连接
- CSDN的博客访问速度较慢
- 给超级链接增加其他样式
- 使用索引提高SQL Server性能
- Torquescript学习笔记:与mysql数据库通信
- SQL Server 2008 BI 详解
- 怎样正确理解.NET和SQL Server中“空值”
- 利用Messager信使服务在局域网内发信息
- 我的项目管理之路--认知项目管理
- 标准模胚2D绘制软件
- SQL Oracle删除重复记录
- asp.net使用SerialPort的方法(VB简单版)[原创]
- 求助 javascript mailto outlook 乱码
- Rational Rose
- 30个适合女生玩的可爱网站