我需要使用 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 |
+------+
答案 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();