首页 新闻 会员 周边 捐助

DataTable.AsEnumerable().Count()提示未将对象引用设置到对象的实例。

0
悬赏园豆:10 [已解决问题] 解决于 2016-08-27 11:26
dt.AsEnumerable().Count(x => x.Field<string>("ENTNTRCODE").Substring(0, 9) == "011627007");
dt.AsEnumerable().Any(x => x.Field<string>("ENTNTRCODE").Equals("27"))

代码如上,DataTable中有一列“ENTNTRCODE”,可能有空指,我需要计算出前9位是“011627007”开头的行总数,这样写运行时候提示未将对象引用设置到对象的实例。如果不加上“Substring(0, 9)”不会报错,但是这样就没意义了。

第二段代码也是提示未将对象引用设置到对象的实例。但是将Equals换成==就没问题了。

我是_用户名的主页 我是_用户名 | 菜鸟二级 | 园豆:223
提问于:2016-08-26 18:58
< >
分享
最佳答案
0

很明显啊,你的字段可能有空值那么x.Field<string>("ENTNTRCODE")解析出来的对象就是null,你再用null.Substring()那肯定报错了,第二行也是一样的问题,你用==没问题应该知道原因吧

收获园豆:5
balahoho | 老鸟四级 |园豆:2050 | 2016-08-26 19:04
其他回答(1)
0

对空值不能计算子字符串,你可以加个过滤条件,将空值去掉

收获园豆:5
悦光阴 | 园豆:2251 (老鸟四级) | 2016-08-26 21:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册