C#读取数据库返回DataTable,遍历 DataTable,

在DataRow dr, 假如dr[0]是一个可空的值类型的字段,那么要赋值给C#程序的一个值类型(可空类型变量这里不讨论)变量时,

可以这样判断dr[0]是不是DBNull:

 int num=dr[].Equals(DBNull.Value) ?  : Convert.ToInt32(dr[]);

这样写使得代码简洁,易读,少一些if...else...

判断一个类型是不是DBNull.Value的方法如下:

  object obj = DBNull.Value;
bool b = obj.Equals(DBNull.Value);
if (b == true)
{
Console.WriteLine("obj is a DBNull");
}
else
{
Console.WriteLine("obj is not a DBNull");
}
Console.ReadKey();

总结了三种方法:

      while (dr.Read())//循环读取
{
//第一种方法判断是不是DBNull.Value
int num1=dr.IsDBNull()?:dr.GetInt32(); //第二种方法判断是不是DBNull.Value
int num2 = dr[].Equals(DBNull.Value) ? : Convert.ToInt32(dr[]); //第二种方法判断是不是DBNull.Value
int num3 = string.IsNullOrEmpty(dr[].ToString()) ? : Convert.ToInt32(dr[]);
}

判断一个值是不是DBNull.Value的更多相关文章

  1. js中的NaN,isNaN与Number.isNaN的区别,如何判断一个值严格等于NaN

    在JavaScript的数字类型Number中,我们最常使用的大概是整数类型与浮点数类型,但除这两者外,还有个特殊的存在NaN,为什么NaN!==NaN?我们如何判断一个值是否等于NaN呢?这篇文章好 ...

  2. js判断一个值是空的最快方法是不是if(!value){alert("这个变量的值是null");}

    !逻辑非 操作符(js)-操作于任何值,(!undefined)(!Null)(!任何对象)(!"")(!"lihuan")(!任何非零数字值) (!0)(!N ...

  3. 判断一个值是否为null或者undefined

    var a=null; var b=undefined; if(a===null){ //a==null alert("a=null") }else{ alert("a= ...

  4. 判断一个值是否在数组里,可以检测数字,字符串,json对象

    Array.prototype.indexOf = function (val) {//判断数组是否存在某个值,如果存在返回该值对应的索引,否则返回-1 for (var i = 0; i < ...

  5. SQL实用技巧:如何判断一个值是否为数字的方法

    检测是不是数字型的数据, 两种方法 1. ISNUMERIC ( expression ) 2. PATINDEX ( ‘%pattern%‘ , expression ) 1. ISNUMERIC  ...

  6. js如何判断一个值是不是Array类型

    本来判断一个对象类型用typeof是最好的,不过对于Array类型是不适用的可以使用 instanceof操作符var arrayStr=new Array("1","2 ...

  7. php判断一个值是否在一个数组中,区分大小写-也可以判断是否在键中

    function in_array_case($value,$array){ return in_array(strtolower($value),array_map('strtolower',$ar ...

  8. C#中判断某个值是否存在于枚举

    我有一个枚举类型: #region -酒的种类- public enum WineType { 白酒 = 3, 葡萄酒 = 4, 洋酒 = 5, 老年陈酒 = 16, 啤酒 = 17 } #endre ...

  9. Java源码中的发现:快速判断一个int值是几位数

    判断一个int值是几位数,要是我自己实现,估计又会想到除法和模运算了,偶然在java标准API源码中发现的写法,很强大. public class Test { final static int[] ...

随机推荐

  1. 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义。

    说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码. 编译器错误消息: CS0012: 类型“System.Data.Objects.DataClas ...

  2. Hadoop之MapReduce分布式计算

    简单介绍一下项目背景——很简单,作死去接下老师的活,然后一干就是半个月,一直忙着从零基础到使用Hadoop中的MapReduce来解决一个实际问题,也就是用来计算一个数据量较大的二度朋友关系. 那么首 ...

  3. jsp:useBean的使用

    ->Bean的基本要素: 1.必须要有一个不带参数的构造器,在jsp元素创建Bean时会调用空构造器 2.Bean类应该没有任何公共实例变量,也就是说,不允许直接访问实例变量,通过setter/ ...

  4. MySql 安装过程(摘自网络)

    下面的是MySQL安装的图解,用的可执行文件安装的,详细说明了一下! 打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩, 运行“setup.exe”,出现如下界面 ...

  5. Struts2 网站上来多少人

    strut.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBL ...

  6. HTML中判断手机是否安装某APP,跳转或下载该应用

    有些时候在做前端输出的时候,需要和app的做些对接工作.就是在手机浏览器中下载某app时,能判断该用户是否安装了该应用.如果安装了该应用,就直接打开该应用:如果没有安装该应用,就下载该应用.那么下面就 ...

  7. Mac终端命令收集

    一.利用命令行执行文件 cd到要执行文件的文件夹 输入python xx.py   命令即可(xx表示要执行的文件名称)

  8. APP金融安全白皮书十大安全注意事项及各项注意安全

    1 信息数据明文发送 2 通信数据可破解 3 敏感数据本地可破解 4 调试信息泄漏 5 敏感信息泄漏 6 密码学误用 7 功能泄漏 8 可二次打包 9 可调式 10 代码可逆向 ----------- ...

  9. 366. Find Leaves of Binary Tree C#

    Example:Given binary tree 1 / \ 2 3 / \ 4 5 Returns [4, 5, 3], [2], [1]. Explanation: 1. Removing th ...

  10. ef code first 您没有所需权限

    在进行数据库更新操作时,update-database -force,反复提示没有改表或者没有所需权限,昨晚折腾了4个小时没有搞定,太晚了,今天Google了一下,这方面的错误,提到的都很少,在一篇文 ...