ds.Tables[0].Rows.Count>0错误
出现了上面的错误,但是把ds.Tables[0].Rows.Count>0换成ds.Tables[0].Rows.Count>1就没错误了,所以我认为不是类型转换的错误,...
出现了上面的错误,但是把ds.Tables[0].Rows.Count>0换成ds.Tables[0].Rows.Count>1就没错误了,所以我认为不是类型转换的错误,但是上面的该法就能成立,求教
展开
7个回答
展开全部
之所以“ds.Tables[0].Rows.Count>1就没错误了”那是因为直接走了else啊。。
所以你if里的还是有错误。而且因为是DBNULL的错误那就是这行没有数据的类型(或者说数据的类型是空)
所以推断你对应的那个表的列虽然是number型的,但是有空值,因此建议在sql语句中将该列的空值替换为0
所以你if里的还是有错误。而且因为是DBNULL的错误那就是这行没有数据的类型(或者说数据的类型是空)
所以推断你对应的那个表的列虽然是number型的,但是有空值,因此建议在sql语句中将该列的空值替换为0
追问
ds里面存放的是select max(address_id) from addr_man这个语句执行的结果,而addr_man这个表里没有数据,所以要是ds.Tables[0].Rows.Count>0应该不成立,怎么还会执行if里面的语句呢?
展开全部
这样的话,只能说明查询出来的数据中,第一行第一列的值是null,第二行第一列有值而且是一个可以转换成数字形式的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ds.Tables[0].Rows.Count是有1行没错,但是ds.Tables[0].Rows[0][0]的值是null的,造成不能转化为int类型,可以用int.tryparse()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那就是你的 这个 “ ds.Tables[0].Rows[0][0] ”值要么为null,,要么不是数字类型的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错误提示是啥吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询