A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴瑞祥 中级黑马   /  2012-11-19 22:00  /  1435 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 wrx362114 于 2012-11-19 22:38 编辑

如果用sqldatareader类的话,怎么知道他返回的是一个空值
调用sqldatareader对象,如果搜索结果是空,不管执行什么方法都会报错,"不能对NULL值调用此方法"
返回的值是DBNULL类型,这个类型不能定义实例

可以了``我用gettype方法得到一个type对象,然后调用tostring再放到if语句中
看是否等于"System.DBNull"字符串,搜索结果为空时,可以用这个判断出来

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

4 个回复

倒序浏览
String类中的IsNullOrEmpty方法判断是否为空或为空字符串
回复 使用道具 举报
如果是判断sqldatareader对象有没有记录,是否为空,Read()的时候就可以判断
如while(dr.read()){}无记录时,即返回false,跳出循环。
也可以用hasread()判断是否有记录.
如if(dr.hasread()),无记录则返回false;
而如果是有记录,是想判断记录某字段是否为空。则可以跟DBNull.Value对比值。
如reader["Id"] == DBNull.Value
你刚说的返回的值是DBNULL类型,这个类型不能定义实例,是不是直接用DBNull,而没有value?如果只写DBNull,只是判断该字段是否是DBNull类型,而不是判断是否等于空值。
回复 使用道具 举报
杨深 发表于 2012-11-20 00:18
如果是判断sqldatareader对象有没有记录,是否为空,Read()的时候就可以判断,
如while(dr.read()){}无记录 ...

明白,就是这个类是一个静态类,可以直接调用放,不能实例化.用的时候忘记静态类这茶了
直接判断变量类型,也是可以撒,我那样测试可以用,就是麻烦了很多很多``````
回复 使用道具 举报
Jam 中级黑马 2012-11-22 15:06:42
报纸
填充到dateTable  判断table行数是否大于0  不大于0则是空吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马