如何判断数据库中取出的某个字段为空
2012-04-18 11:13
399 查看
如果通过name字段在数据库中为空值,用data.Tables[0].Rows[0]["AlarmFlag"] !=null判断得到的结果为true,原因为AlarmFlag字段读出来为system.DBNull其中AlarmFlag为tinyint类型正确的判断方法是data.Tables[0].Rows[0]["AlarmFlag"] != System.DBNull.Value也可以用下面的方法data.Tables[0].Rows[0]["AlarmFlag"].ToString()!=""附:null表示空对象或指针-在C#中)
System.DBNull表示空数据(数据库在C#中的表示)data.Tables[0].Rows[0].IsNull("TIME") ? DateTime.Now : Convert.ToDateTime(data.Tables[0].Rows[0]["TIME"])其中TIME为DateTime类型data.Tables[0].Rows[0].IsNull("CIRCLE") ? 0 : Convert.ToInt32(data.Tables[0].Rows[0]["CIRCLE"])其中CIRCLE为int类型MSDN:请勿将面向对象的编程语言中的 null引用(在 Visual Basic 中为 Nothing) 概念与 DBNull 对象混淆。在面向对象的编程语言中,null 引用(在 Visual Basic 中为 Nothing) 表示不存在对某个对象的引用。DBNull 则表示未初始化的变量或不存在的数据库列。附:如何正确理解 SQL 中的 NULL 在 SQL 语句中, NULL 值与字符列中的空格, 数字中的零, 字符列中的 NULL ASCII 字符都不相同. 当DBMS在一列中发现一个 NULL 值时, 就将其翻译为未定义或是不可用的. DBMS不能在一列中做出有关 NULL 的假设, 也不能假设 NULL 值等于 NULL, 造成某一列成为 NULL 的因素可能是: (1),值不存在;(2), 值未知; (3), 列对表不可用. 所以, 应将 NULL 值当作是一个批示符, 而不是一个值. 当DBMS 在表的某一行的某一列中找到 NULL 值时, DBMS就知道该数据已丢失或者是不可用.
一句话, NULL 指示这个值 "未知",原因是它可能不存在, 可能不可用, 也可能就是因为值未知.
这里对各个环境下的 "空值" (不知道该怎样总称这些东西, 暂且就叫空值吧!)简单的解释一下:
1:真正的空值 (SQL 中的 NULL)
等同“没有输入的值”,可以出现在大多数类型的字段中(如果没有别的约束条件),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从数据库得到的空字符串也和一般的字符串没什么区别。
3. VB.NET中的Nothing; 它其实对应于C#.NET中的null(注意这个null是C#.NET中的null而非SQL Server中null),它们在.NET中是表示不引用任何对象的空引用的值,在传入
SQL server时,根据不同的上下文环境,可能存为真正的空值(比如在更新一个字符串类型的字段值时),也可能调用在SQL server中自定义的默认值(比如传给一个有默认值的存储过程参数),也可能因为无法进行类型转换而引发.NET异常。因此在用ADO.NET向SQL server中存储数据时,大家一定要小心使用Nothing。
4.undefined 值与 null 的区别是:
一般情况下, 下列情况可使用undefined值:
(1),对象属性不存在,
(2),声明了变量但从未赋值。
而释放引用,跟踪结果为变量值等操作使用 null.
System.DBNull表示空数据(数据库在C#中的表示)data.Tables[0].Rows[0].IsNull("TIME") ? DateTime.Now : Convert.ToDateTime(data.Tables[0].Rows[0]["TIME"])其中TIME为DateTime类型data.Tables[0].Rows[0].IsNull("CIRCLE") ? 0 : Convert.ToInt32(data.Tables[0].Rows[0]["CIRCLE"])其中CIRCLE为int类型MSDN:请勿将面向对象的编程语言中的 null引用(在 Visual Basic 中为 Nothing) 概念与 DBNull 对象混淆。在面向对象的编程语言中,null 引用(在 Visual Basic 中为 Nothing) 表示不存在对某个对象的引用。DBNull 则表示未初始化的变量或不存在的数据库列。附:如何正确理解 SQL 中的 NULL 在 SQL 语句中, NULL 值与字符列中的空格, 数字中的零, 字符列中的 NULL ASCII 字符都不相同. 当DBMS在一列中发现一个 NULL 值时, 就将其翻译为未定义或是不可用的. DBMS不能在一列中做出有关 NULL 的假设, 也不能假设 NULL 值等于 NULL, 造成某一列成为 NULL 的因素可能是: (1),值不存在;(2), 值未知; (3), 列对表不可用. 所以, 应将 NULL 值当作是一个批示符, 而不是一个值. 当DBMS 在表的某一行的某一列中找到 NULL 值时, DBMS就知道该数据已丢失或者是不可用.
一句话, NULL 指示这个值 "未知",原因是它可能不存在, 可能不可用, 也可能就是因为值未知.
这里对各个环境下的 "空值" (不知道该怎样总称这些东西, 暂且就叫空值吧!)简单的解释一下:
1:真正的空值 (SQL 中的 NULL)
等同“没有输入的值”,可以出现在大多数类型的字段中(如果没有别的约束条件),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从数据库得到的空字符串也和一般的字符串没什么区别。
3. VB.NET中的Nothing; 它其实对应于C#.NET中的null(注意这个null是C#.NET中的null而非SQL Server中null),它们在.NET中是表示不引用任何对象的空引用的值,在传入
SQL server时,根据不同的上下文环境,可能存为真正的空值(比如在更新一个字符串类型的字段值时),也可能调用在SQL server中自定义的默认值(比如传给一个有默认值的存储过程参数),也可能因为无法进行类型转换而引发.NET异常。因此在用ADO.NET向SQL server中存储数据时,大家一定要小心使用Nothing。
4.undefined 值与 null 的区别是:
一般情况下, 下列情况可使用undefined值:
(1),对象属性不存在,
(2),声明了变量但从未赋值。
而释放引用,跟踪结果为变量值等操作使用 null.
相关文章推荐
- 如何判断数据库中取出的某个字段为空
- 如何判断数据库中取出的某个字段为空
- 如何判断数据库,表或字段是否存在
- (注意)如何判断数据库字段 不为空 不为null 不为" "
- C#三种判断数据库中取出的字段值是否为空(NULL) 的方法
- [VB.NET]求助!如何判断数据库里某个字段是否为空!~~~
- C#判断数据库中取出的字段值是否为空(NULL)
- 【笔试】超大文件里的数据去重排序;将log中MAC地址提取出来;取出数据库表T里第20行到29行的数据;如何判断一个二叉树B是不是二叉树A的子树?
- [导入]数据库中字段为NULL,业务逻辑层中如何实现判断是否为NULL
- C#判断数据库中取出的字段值是否为空(NULL)
- C#三种判断数据库中取出的字段值是否为空(NULL) 的方法
- java中判断从数据库中取出的字段是否为空
- (注意)如何判断数据库字段 不为空 不为null 不为" "
- 如何判断数据库,表或字段是否存在
- C#判断数据库中取出的字段值是否为空(NULL) .
- C#三种判断数据库中取出的字段值是否为空(NULL) 的方法
- C#三种判断数据库中取出的字段值是否为空(NULL) 的方法
- C#三种判断数据库中取出的字段值是否为空(NULL) 的方法
- 牛腩购物9 用户表设计/动软生成器/金钱字段decimal(18, 2)/ 注册的时候的前台js判断/后台代码判断/正则表达式软件/RegexBuddy/设置数据库字段的唯一性约束/如何获取控件在前台html的id值/如何将C#的后台正则换成js的正则
- 如何判断数据库的某个字段不为空方法