System.InvalidCastException: 对象不能从 DBNull 转换为其他类型。

wanggenhu0 2010-09-27 05:42:47
System.InvalidCastException: 对象不能从 DBNull 转换为其他类型。

datatable中用时列为decimal型,对此列中大于0的求平均值 decimal liaokys = Convert.ToDecimal(dt.Compute("AVG(用时)", "用时>0"));
提示如下信息,请高手指点

System.InvalidCastException: 对象不能从 DBNull 转换为其他类型。

...全文
360 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2010-09-27
  • 打赏
  • 举报
回复
Object x = dt.Compute("AVG(用时)", "用时>0");
decimal liaokys =0;
if(x!=DBNull.Value)
liaokys = Convert.ToDecimal(x);
wuyq11 2010-09-27
  • 打赏
  • 举报
回复
使用DBNull.value进行判断
dr[""]==DBNull.Value? " ":"";
wanggenhu0 2010-09-27
  • 打赏
  • 举报
回复
不行加段点也没法看这句中哪个是null
dt.Compute("AVG(用时)", "用时>0")

用时这列我提取数据的时候就不提取空值
miaoyuanyan 2010-09-27
  • 打赏
  • 举报
回复
为空的时候赋给一个默认值0?
YellowManDog 2010-09-27
  • 打赏
  • 举报
回复
dt.Compute("AVG(用时)", "用时>0"));
你能确定它查到数据了么?因为没有查到数据,你后边的是null所以没法转化,你加断点看看,是不是null

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

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