关闭

判断为空的方法总结

标签: string数据库null存储object
796人阅读 评论(1) 收藏 举报

1.在开发时常常碰到需要判断从数据库中取的值是否为空的情况

如果字段类型为字符串类型我们可以用

string test=dt.Rows[i]["columnName"].ToString();

if(!string.IsNullOrEmpty(test))

但是如果字段类型不为字符串,这样判断可能会有问题,数据库中的某列值返回要么是列值,要么为DBNull,所以不管任何类型的字段我们都可以用

if(test!=DBNull.value)

if(Convert.IsDBNull(test))

进行判断

补充:

DBNull在DotNet是单独的一个类型,该类只能存在唯一的实例,DBNULL.Value,DBNull唯一作用是 可以表示数据库中的字符串,数字,或日期,为什么可以表示原因是DotNet储存这些数据的类(DataRow等)都是以 object 的形式来储存数据的。对于 DataRow , 它的 row[column] 返回的值永远不为 null , 要么就是具体的为column 的类型的值 。 要么就是 DBNull 。 所以 row[column].ToString() 这个写法永远不会在ToString那里发生NullReferenceException。DBNull 实现了 IConvertible 。 但是,除了 ToString 是正常的外,其他的ToXXX都会抛出不能转换的错误。

2.赋空值

有时候我们要对一个变量进行初始化,需要赋空值,常用的有两种:

string  test=“”;

string  test1=string.Empty;

这两个都是空字符串,但本质上却有很大的区别:""表示一个字符串,字符串为空值,在数据库中占有实际的存储空间,在内存中也有准确的指向;而string.Empty(null)只是定义了一个string类的引用,不占用存储空间,在内存中也没有具体的指向,这样定义后不能直接使用还需要实例化才可以。

 

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:203077次
    • 积分:2298
    • 等级:
    • 排名:第16237名
    • 原创:53篇
    • 转载:43篇
    • 译文:0篇
    • 评论:7条
    文章分类
    最新评论