DBNull.Value 字段的用法
DBNull 是一个单独的类,这意味着该类只能存在此实例。它指数据库中数据为空(<NULL>)时,在.net中的值
如果数据库字段的数据缺失,则您可以使用 DBNull.Value 属性将 DBNull 对象值显式分配给该字段。然而,大部分数据提供程序会自动进行分配。
若要计算数据库字段以确定其值是否为 DBNull,则可以将字段值传递给 DBNull.Value.Equals 方法。但此方法不常用,因为有许多其他方式可计算数据库字段是否缺少数据。
例如:
if (! DBNull.Value.Equals(row[fieldName]))
return (string) row[fieldName] + " ";
else
return String.Empty;
DBNull.value==数据库中的null值...
DBNull.value是对datatable来说的,他就相当于DB中的null,datatable中的null值只有用DBNull.value才能比较,
例如:drow[0]==DBNull.value;
延伸阅读:
一、对表进行插入操作,如datetime和int类型的两个字段,都允许为null,
用“sqlcmd.Parameters.Add("@t12",tb12.Text)”参数绑定时。datetime类型时,tb12.Text为空,插入成功,不报错,查看该值,却为1900-01-01;int类型时,用同样语句,tb12.Text为空,插入成功,不报错,查看该值,却为0;用“sqlcmd.Parameters.Add(new SqlParameter("@t12",SqlDbType.DateTime));sqlcmd.Parameters["@t12"].Value=tb12.Text;”语句时,tb12.Text为空插入则报错。
sqlcmd.Parameters.Add(new SqlParameter("@t12",SqlDbType.DateTime));
if (tb12.Text.Length>0)
{
sqlcmd.Parameters["@t12"].Value=tb12.Text
}
else
{
sqlcmd.Parameters["@t12"].Value = System.DBNull.Value;
}
二、
以下是我测试的一个例子。
例:表tbl_Student
id name address
1 jim <NULL>
将上述表数据填充到.net 的名为dt的DataTable中。
dt.Rows[0]["address"]不等于null但是等于DBNull.Value.
可见null表示一个对象的指向无效,即该对象为空对象。
DBNull.Value表示一个对象在数据库中的值为空,或者说未初始化,DBNull.Value对象是指向有效的对象。
另外注:对上述dt,如果有如下代码:dt.Rows[0][100]。结果如何?
并非想象中的null。而是出现异常:索引超出数组界限。
对于普通的引用类型变量,如果指向对象为null,则会提示:未将对象引用设置到对象实例。但对于使用dt.Rows[i][j]取值,如果第i行存在但i行没有j列,则直接出现异常,不会返回一个指向null的dt.Rows[i][j]。
所以:使用(dt.Rows[0][100]!=null)判断没有意义。为避免0行的100列不存在。可以判断(dt.Rows[0].ItemArray.Length>100).
DBNull.Value 字段的用法的更多相关文章
- sql server 计算属性,计算字段的用法与解析
SQL学习之计算字段的用法与解析 一.计算字段 1.存储在数据库表中的数据一般不是应用程序所需要的格式.大多数情况下,数据表中的数据都需要进行二次处理.下面举几个例子. (1).我们需要一个字段同 ...
- C#中属性与字段的用法
//People.cs public class People { //字段 private string _name; //属性 作用:保护字段,对字段的取值和赋值进行限定,限制非法字段的摄入 pu ...
- Linq/EF/lambda Group by/Order by 多个字段详细用法
1)单个字段Group by: //a.Key类型与a.Province字段类型一样 .GroupBy(a => a.Province).Select(a => a.Key).ToLis ...
- SQL学习之计算字段的用法与解析
一.计算字段 1.存储在数据库表中的数据一般不是应用程序所需要的格式.大多数情况下,数据表中的数据都需要进行二次处理.下面举几个例子. (1).我们需要一个字段同时显示公司名和公司地址,但这两个信息存 ...
- MySQL GROUP BY多个字段分组用法详解
mysql语句中group by 很容易理解 是分组查询.比如 select sum(score) from user group by name 意思是查询每个人的分数总和但是, select su ...
- odoo开发笔记--模型字段compute用法
compute属性,实现的主要功能是,前端界面选择某个字段的时候,指定与该字段关联的其他字段可以关联,并联动的显示. 可以和inverse属性同时使用,不加inverse属性的话,前端界面的显示效果只 ...
- mysql 添加字段,修改字段的用法
1.添加字段 ALTER TABLE 表明 add 字段名称 类型(int,char,VARCHAR...) DEFAULT 默认值 位置(FIRST, AFTER+字段名称); 2.删除 ALTE ...
- 记录一下 mysql 的查询中like字段的用法
SELECT * from t_yymp_auth_role where role_name not like '%测试%' and role_name not like '%部门%' and rol ...
- 用sql增、修改、删除字段
--给一个表增加一个字段 ); --给一个表修改一个字段的数据类型 ,); --通用sql修改字段的用法 ,); --删除一个字段 alter table wm_goods drop column b ...
随机推荐
- 谈谈Nullable<T>的类型转换问题
本篇文章讨论可空值类型(Nullable<T>)的转换,却确地说是如何将一种类型的值对象转换成相应的可空值.这来源于今天我们的一个成员遇到的一个小问题,我经过一些整理写了这篇文章.虽然没有 ...
- 我们一起学Windows Phone 8-01-开发环境搭建
我们仅讨论Windows Phone 8的开发,不考虑兼容向下兼容.也不会提供任何盗版软件的下载.破解. 需要准备 知识:.NET相关开发经验,C#语言开发经验.如果有WPF或Silverlight开 ...
- nodejs remote链接mysql数据库总结
nodejs链接远端mysql,这个折腾了一个上午才搞定.本以为,直接使用就OK了,但是发现不行,后来查阅各种资料后,终于找到了方法. nodejs链接远端数据库主要分为几个步骤: 1)安装node- ...
- 使用rapid-framework自动生成struct2
在JavaWeb的开发中,对数据对象的操作不外乎增删改查,不同的数据对象,其action.service.model.jsp等都比较类似,如果手动去写这些代码,工作量大且非常繁琐.一个心高气傲的程序员 ...
- 带搜索的下拉框Chosen
一:参考 https://harvesthq.github.io/chosen/ Chosen是一个jQuery插件 二:引入js文件 <link href="plug-in/chos ...
- sublime 修改Xdebug插件快捷键
最近在用Xdebug插件 感觉挺好用 但是快捷键不太舒服,特别是调试下一步的时候,比较麻烦,按键较多: 所以想DIY下 但是preferences->package setting ->X ...
- HDFS知识体系 思维导图
- RCP学习笔记
一些model特征: Trimmed Window: 带最小化最大化的窗体 Perspective Stack: 装载Perspective的容器 Perspective:一个透视,可以直接包含Par ...
- ubuntu find方法
通用格式:find pathname -options [-print -exec -ok]例子:find / -name filename 再根目录里面搜索文件名为filename的文件find / ...
- 读取app.config配置文件信息
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup& ...