- 浏览: 147209 次
- 性别:
- 来自: 汕尾
文章分类
最新评论
初学数据库编程我们可能会有一些对“空值”的疑问,比如通过编程新建的一个表中所有数据皆显示为<NULL>,手动添加并删除文字后又变成了空白;一个字符串类型的字段,明明没有填值,却不等于"";用ADO.NET从数据库中取值,每遇到有<NULL>的就出错……这需要我们正确认识.NET和SQL 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(注意这个null是C#.NET中的null而非SQL Server中null),它们在.NET中是表示不引用任何对象的空引用的值,在传入SQL server时,根据不同的上下文环境,可能存为真正的空值(比如在更新一个字符串类型的字段值时),也可能调用在SQL server中自定义的默认值(比如传给一个有默认值的存储过程参数),也可能因为无法进行类型转换而引发.NET异常。因此在用ADO.NET向SQL server中存储数据时要慎用Nothing。
发表评论
-
终于能拿到私活的第一笔款了
2012-05-25 07:22 866用两周的时间全力做了一套酒店门户网站,包括后台管理网站和最 ... -
.net 隐式转换和显式转换
2012-05-11 07:15 7921.隐式转换:(String不能隐式转换为int) int ... -
解释性语言和编译性语言的区别
2012-05-10 23:02 913计算机不能直接理解高 ... -
.net身份验证机制
2012-05-10 22:47 7221.Windows 依赖于iis提供的验证方式,匿名、基本身 ... -
.net 并发控制方式
2012-05-10 22:35 11251.保守式并发控制 独占式处理,数据在完成更新完成之后才解锁 ... -
String、StringBuffer、StringBuilder的区别
2012-05-10 22:20 7531.String是字符串常量;StringBuffer、Str ... -
对主管的判断
2012-05-03 22:57 704一个个的诺言,不能实现,慢慢地让我对这个主管失去信心,4月 ... -
成熟的标志
2012-04-22 23:14 662一:沉稳(1)不要随便显露你的情绪。 没做到(2)不要逢人就诉 ... -
机会?陷阱?
2012-04-22 23:12 664主管想带我跳槽,提供比现在翻倍的工资,但却打乱了原先的计 ... -
每日总结20120415(周日)
2012-04-15 21:54 762前面的总结终于慢慢地发挥作用了,现在已经基本上了解自己的工作 ... -
每日总结20120410
2012-04-10 23:33 777今天学车,我是第一个上车了,第一次就把车踩熄火了,悲催。关 ... -
每日总结20120409
2012-04-09 22:22 690尝试了一下去见见一些老同学,发现了很多新的东西,人确实是一 ... -
每日总结20120406
2012-04-06 23:01 603今天虽然排除不了外界的干扰,但思路清晰的做事情,让我至少维 ... -
每日总结20120405
2012-04-05 22:39 720今天用做一个签核组织功能模块,分别预测自己能用15分钟做 ... -
每天一个小时听写英语
2012-04-05 20:59 929第一个目标:能一句句的听写读出听到的英文。 -
现有技能水平
2012-04-04 23:56 476.net:初级,能看懂和利用别人的框架,改改贴贴,根据需要添 ... -
不抱怨,说到做到
2012-04-04 23:31 536没出息的人只会抱怨现实或其他人其他条件对自己的不公,实现不 ... -
要在一个领域取得成就,就必须有对该领域的独特的执着
2012-04-03 23:34 990做什么事情都三分钟热度,永远都没有办法学精。对语言的感情, ... -
从来没有那么渴望顶端的风景过
2012-03-29 22:08 686平庸太无趣了,只有爬得更高才能看到更多的乐趣,体验到更多 ... -
思路一定要清晰
2012-03-26 23:21 560今天过了理论考试,把然后把项目要好好地测试了一下,发现了 ...
相关推荐
探讨 SQL Server 数据库中空值处理技巧 在 SQL Server 中处理空值是数据库系统中非常重要的一方面。空值的存在可能会导致数据不完整、计算错误、外键处理问题等。因此,了解如何正确地处理空值是非常必要的。本文将...
在SQL Server中,空值可以分为存在型空值、不存在型空值和占位型空值。存在型空值是指某个应当存在的数据值实际上缺失了,例如个人档案中的电话号码字段,如果某人未提供,则为存在型空值。不存在型空值表示该值对于...
Oracle SQL 中判断值为空或 Null 的方法有多种,在本文中,我们将介绍 Oracle 和 SQL Server 中的空值判断方法。 Oracle 中的空值判断 在 Oracle 中,可以使用 `NVL` 函数来判断值为空或 Null。`NVL` 函数的语法...
然后,我们添加了一个`SqlParameter`,名为`@DateTimeValue`,类型设置为`SqlDbType.DateTime`,并将其值设置为`DBNull.Value`,这代表SQL中的`NULL`。最后,我们执行`ExecuteNonQuery()`来执行命令,从而将空值插入...
SQL Server 数据库中处理空值时常见问题 数据完整性是任何数据库系统要保证的重点。不管系统计划得有多好,空数据值的问题总是存在。本文探讨了在 SQL Server 中处理这些值时涉及的 3 个问题:计数、使用空表值以及...
在ASP.NET中,将Excel数据导入到SQL Server数据库是一个常见的需求,这主要涉及到文件上传、数据读取和数据库操作等技术。以下是对这个主题的详细解释: 首先,我们需要使用ASP.NET的FileUpload控件来实现Excel文件...
二、如何在sql语句中判断为NULL的时间字段 假设表为:TestTable SN DateTime1 DateTime2 1 2011-10-24 2011-10-25 2 NULL 2011-10-26 3 2011-10-25 NULL 用case进行查询,若写成: select (case DateTime1 ...
在C#中,我们通常使用ADO.NET库来连接和操作SQL Server数据库。首要步骤是创建一个`SqlConnection`对象,指定服务器名称、数据库名、用户名和密码。例如: ```csharp string connectionString = "Server=...
需要做两个部分的配置:SQL Server Management Studio(简写 SSMS)和 SQL Server 配置管理器/SQL Server Configuration Manager(简写 SSCM)。 SQL Server Management Studio(SSMS)配置 1. 打开 sql2008,使用...
### ASP.NET中对数据库表插入NULL空值的问题 在ASP.NET开发过程中,向数据库表插入数据时遇到NULL值处理不当的...通过上述方法,可以有效地解决ASP.NET中数据库表插入NULL空值的问题,提高应用程序的稳定性和可靠性。
7. **数据预处理**:在迁移前,可能需要对SQL Server的数据进行清洗和预处理,比如处理空值、异常值或不一致的数据。 8. **错误处理和日志记录**:工具应具备良好的错误处理机制,当遇到问题时能够记录并报告错误,...
在IT行业中,数据管理和操作是核心任务之一,而Excel与SQL Server之间的数据交互是一个常见的需求。Excel作为一种便捷的数据处理工具,常用于数据整理和分析,而SQL Server则是一个强大的关系型数据库管理系统,适用...
在C++Builder中连接SQL Server数据库是常见的需求,这对于实现数据驱动的应用程序至关重要。本文将详细讲解如何在C++Builder中建立与SQL Server的连接,并介绍相关的关键知识点。 首先,要连接SQL Server,你需要...
在IT行业中,数据库管理系统(DBMS)是至关重要的组成部分,其中Oracle和SQL Server是最为广泛使用的两种DBMS。它们各自提供了丰富的内置函数来处理数据,包括数值、字符串、日期时间等类型的操作。本文将深入探讨...
本文将探讨如何实现一个工具,用于在Oracle和SQL Server数据库之间进行数据的抽取与转换。Oracle是广受欢迎的关系型数据库管理系统,而SQL Server是微软公司推出的另一款强大的数据库平台。在不同的数据库系统间进行...
在SQL Server中,数据以行和列的形式存储在表中,这些表又组织在数据库中。数据库是一个集合,包含了相关的数据以及控制数据的结构和规则。理解数据模型,如实体关系模型(ER模型),对于设计和管理数据库至关重要。...
以下是一段用于在SQL Server中查看指定表结构的SQL脚本示例: ```sql declare @table_name as varchar(max) set @table_name = 'Ҫ鿴ı' -- 这里假设你想查看名为'Ҫ鿴ı'的表的结构 -- 查询列名、数据类型、最大...
在IT行业中,数据库管理系统(DBMS)如Oracle和SQL Server是关键的数据存储和处理平台。在不同的业务场景下,有时我们需要将数据从一个数据库系统迁移到另一个,这通常涉及到数据的提取、转换和加载(ETL)过程。...
在SQL Server中使用的是`.NET Framework`下的`SqlConnection`类来建立连接,而在Oracle中则需使用`OracleConnection`类。下面是一段示例代码: ```csharp private static object GetConnection(out string error...
首先,我们看到代码中使用了多种.NET Framework的相关命名空间,包括System.Data.SqlClient,这表明我们将使用SQL Server作为数据源。`SqlConnection`和`SqlCommand`类用于连接数据库并执行SQL查询,而`...