c#Linq数据网格视图列,检查是否为null

时间:2017-08-22 08:14:00

标签: c# linq

我需要使用 System.Linq DataSet 检查 GridView 中的值是空还是空。

我尝试过这段代码却没有成功,因为错误是:

  

指定的演员表无效。

如何解决这个问题?

我的代码如下。

提前感谢您或提供任何帮助。

gv.Columns[4].FooterText = ds.Tables[0].AsEnumerable()
.Select(x => x.Field<Int32>("Tot1")).Where(x => x != null).Sum().ToString();

SQL查询:

sql = " SELECT IFNULL(Tot1,0) AS Tot1
sql += " FROM ";
sql += "    doTable; ";

+------+
| Tot1 |
+------+
|  0   |
|  0   |
|  1   |
|  0   |
|  2   |
+------+

1 个答案:

答案 0 :(得分:0)

您必须使用long进行投射,因为IFNULL从MySQL返回BIGINT

gv.Columns[4].FooterText = ds.Tables[0].AsEnumerable()
.Select(x => x.Field<long?>("Tot1")).Where(x => x != null).Sum().ToString();

更好的版本是:

gv.Columns[4].FooterText = ds.Tables[0].AsEnumerable()
.Select(x => x.Field<long?>("Tot1") ?? 0).Sum().ToString();