关于ado的一个难题

csdaa2010 2011-10-30 07:14:15
最近 在学习 ado.net碰到一个难题,
用 DataReader Reader=CMD.ExecuteReader();
if(Reader.read())
{
int id = (int) Reader[0];
}

如果Reader[0]中没有值就会报错,请问怎么解决呢?
...全文
82 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshimaikou 2011-10-30
  • 打赏
  • 举报
回复
先判断是否为空,你那里用到了类型转换,为空肯定报错啊
csdaa2010 2011-10-30
  • 打赏
  • 举报
回复
哇,聪明
黄亮 2011-10-30
  • 打赏
  • 举报
回复
数据库中的空值是DBNull;
你可以先判断

DataReader Reader=CMD.ExecuteReader();
if(Reader.read())
{

int id = 0;
var o = Reader[0];
if(o!=DBNull.Value)
id = (int) Reader[0];
}

弦弦 2011-10-30
  • 打赏
  • 举报
回复
不清楚,不用DataReader好多年了。
csdaa2010 2011-10-30
  • 打赏
  • 举报
回复
谢谢了,学习了

还有更好的办法吗?
比如不用DataReader...
弦弦 2011-10-30
  • 打赏
  • 举报
回复
if(Reader.read())
{
if(string.isNullorEmpty(Reader[0]))
int id = (int) Reader[0];
}


62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧