通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>NET专区>>正文 新版上线![旧版]
注:打开慢时请稍等

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

http://www.iyit.net  日期:2006-6-12 1:55:02  来源:  点击:
参加讨论

初学数据库编程我们可能会有一些对“空值”的疑问,比如通过编程新建的一个表中所有数据皆显示为<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



编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:用 .NET 实现插件机制
下一篇:C#中数据库操作
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
用perl访问mysql数据库之一 用perl访问mysql数据库之二 ASP.NET连SQL7接口源代码
 一个用Wsh来控制SqlServer的Dcom的VBs .Net下调用SqlServer2k中存储过程 用asp.net还原与恢复sqlserver数据库
ASP.NET中如何防范SQL注入式攻击 ASP.NET2.0+SQL Server2005构建多层应用 如何在Jsp中使用JDBC来联结MySql
j2ee的jdbc配置指南--连接sql server 数 JSP连接SQL SERVER问题总结 JSP数据库操作例程 - 存储过程 - JDBC-
JSP连接SQL Server 2000系统配置 Tomcat5+Mssql server 2000数据库连接池 WIN2000+PHP+MYSQL+TOMCAT+JSP完全整合
安装resin+mysql+IIS+JDK的总结 配置整合Win+Apache+PHP+MySQL+Tcomcat Windows2000下整合Mysql4.0.13与Tomcat
JAVA/JSP学习系列之六(MySQL翻页例子) JAVA/JSP学习系列之八(改写MySQL翻页例 JSP连接mysql数据库攻略
如何直接在浏览器内运行SQL命令 JSP中tomcat的SQL Server2000数据库连接 如何在Jsp中使用JDBC来联结MySql
最新更新 热点排行 推荐新闻
使用 ASP.NET 加密口令
[ASP.NET] Session 详解
从ASP迁移至ASP+
从ASP迁移至ASP+ ----------进入DataS
从ASP迁移至ASP+ --将HTML表格转换为A
CGI教程(2)
CGI教程(3)
CGI教程(5)
CGI教程(6)
CGI教程(7)
CGI教程(8)
CGI教程(5)
CGI教学:第一章 cgilib例
CGI教学:第二章 动态创建图像
CGI教学:第三章 计数器的编写方法
为ASP.NET 2.0菜单控件增加target属性
将Asp.net页面输出为HTML
在ASP.NET中防止注入攻击
ASP.NET 2.0 中的异步页功能应用
asp.net面试试题收集
QQ密码本地破解
msn8.0下载
PPLive最新内部版本揭密
珊蝴虫QQ探测隐身的招式用法
Visual Basic 概述
exeplorer.exe错误的问题的总结、解决
Authorware7.0基础与实例教程连载 第5
解决Windows中的explorer.exe出错
Windows常见文件修复技巧
Photoshop打造美女性感纹身(2)
在ASP.NET中防止注入攻击
用ASP.NET开发Web服务的五则技巧
ASP.NET 2.0 中的异步页功能应用
Windows下的虚拟主机设置全功略
危险无处不在 Html标签带来的安全隐患
网络游戏是06年互联网最具发展潜力业务
巧用ACDSee 8.0截取QQ表情每一帧
解除瑞星 诺顿遗留下的杀毒兼容问题
第一款开源AJAX安全扫描工具Sprajax
WinRAR人性化功能揭密
在ASP.NET中防止注入攻击
用ASP.NET开发Web服务的五则技巧
Linux操作系统12则经典应用技巧
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息