请教各位高手  System.DBNull.Value和bull的区别

zerg318 2006-10-30 03:28:33
object a = dgvProduct.Rows[e.RowIndex].Cells["Nosell"].Value;
bool b;
if (a != System.DBNull.Value)
{
try
   { b = (bool)a; }
catch (InvalidCastException)
                   {return;}
} 
在dgv控件返回的一个表里面做循环判断
在表最后有个空行(添加用的)
用上面语句 竟然能执行到 b = (bool)a; (循环到最后空行的时候)然后报错
 System.DBNull.Value改用null 就不会执行到  b = (bool)a;

何解?
...全文
170 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
scow 2006-10-30
  • 打赏
  • 举报
回复
没看清,sorry.应该是a的实际类型不是bool(bit in database)
scow 2006-10-30
  • 打赏
  • 举报
回复
Convert.IsDBNull(a)
zerg318 2006-10-30
  • 打赏
  • 举报
回复
自己顶下
jacobwc 2006-10-30
  • 打赏
  • 举报
回复
System.DBNull.Value 好像是类型不为空
zerg318 2006-10-30
  • 打赏
  • 举报
回复
a != System.DBNull.Value

我在这里不是判断它非空吗??

怎么到下面 才报错啊 

是 a != System.DBNull.Value 这句有问题
ofei 2006-10-30
  • 打赏
  • 举报
回复
DBNull.Value 数据库的空值
null 是引用对象的空值

bool是值类型
bool a = (bool)null;这肯定不行!
相关推荐
发帖
C#

10.9w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2006-10-30 03:28
社区公告

让您成为最强悍的C#开发者