快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

.NET和SQL Server中“空值”辨析

初学数据库编程我们可能会有一些对“空值”的疑问,比如通过编程新建的一个表中所有数据皆显示为<NULL>,手动添加并删除文字后又变成了空白;一个字符串类型的字段,明明没有填值,却不等于\"\";用ADO.NET从数据库中取值,每碰到有<NULL>的就出错……这需要我们准确熟悉.NETSQL Server中几种不同的“空值”。

 1、真正的空值,也就是“没有输入的值”,可以出现在大多数类型的字段中(假如没有别的约束条件),SQL server中表示为null,显示为<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(注重这个nullC#.NET中的null而非SQL Servernull),它们在.NET中是表示不引用任何对象的空引用的值,在传入SQL server时,根据不同的上下文环境,可能存为真正的空值(比如在更新一个字符串类型的字段值时),也可能调用在SQL server中自定义的默认值(比如传给一个有默认值的存储过程参数),也可能因为无法进行类型转变而引发.NET非常。因此在用ADO.NETSQL server中存储数据时要慎用Nothing


返回类别: 教程
上一教程: 根据数据库生成xml二法
下一教程: ASP.NET创建XML Web服务全接触(12)

您可以阅读与".NET和SQL Server中“空值”辨析"相关的教程:
· .Net 下对SqlServer2000中的存储过程的调用
· .Net 下对SqlServer2000中的存储过程的调用
· .Net下调用SqlServer2k中存储过程
· 用asp.net还原与恢复sqlserver数据库
· Dotnet总结(2)--访问ms sql server 数据库基类--2
    微笑服务 优质保证 索取样品