判断一个值是不是DBNull.Value


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

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

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

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

这样写使得代码简洁,易读,少一些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(0)?0:dr.GetInt32(0);

                    //第二种方法判断是不是DBNull.Value
                    int num2 = dr[1].Equals(DBNull.Value) ? 0 : Convert.ToInt32(dr[1]);

                    //第二种方法判断是不是DBNull.Value
                    int num3 = string.IsNullOrEmpty(dr[2].ToString()) ? 0 : Convert.ToInt32(dr[2]); 
          }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM