我需要使用 C# 在 ASP.Net 的GridView 页脚中显示总列数(总计)。
我有两个问题:
指定的演员表无效。
添加 Tot2 的总和时。
如何解决这个问题?
感谢您提供任何帮助。
这是 SQL 查询:
sql = " SELECT ZN, ";
sql += " IFNULL(Tot1,0) AS Tot1, ";
sql += " IFNULL(Tot2,0) AS Tot2 ";
sql += " FROM ";
sql += " doTable ";
sql += " ORDER BY ";
sql += " Tot1 DESC; ";
+----+------+------+
| Zn | Tot1 | Tot2 |
+----+------+------+
| ZO | 3 | 0 |
| ZO | 3 | 0 |
| ZO | 2 | 1 |
| ZO | 2 | 0 |
| ZO | 2 | 0 |
| ZO | 2 | 0 |
| ZO | 2 | 0 |
| ZO | 1 | 0 |
| ZO | 1 | 1 |
| ZO | 1 | 0 |
+----+------+------+
10 rows in set
这是代码隐藏:
OdbcDataAdapter adapter = new OdbcDataAdapter(command);
adapter.Fill(dsProducts);
gvProducts.Columns[1].FooterText = "Total";
gvProducts.Columns[2].ItemStyle.HorizontalAlign = HorizontalAlign.Right;
gvProducts.Columns[2].ItemStyle.CssClass = "ddl_Class_new";
gvProducts.Columns[2].FooterText = dsProducts.Tables[0].AsEnumerable().Select(x => x.Field<Int32>("Tot1")).Sum().ToString();
gvProducts.Columns[3].ItemStyle.HorizontalAlign = HorizontalAlign.Right;
gvProducts.Columns[3].ItemStyle.CssClass = "ddl_Class_new";
gvProducts.Columns[3].FooterText = dsProducts.Tables[0].AsEnumerable().Select(x => x.Field<Int32>("Tot2")).Sum().ToString();
首先,您将页脚的 css 设置为 FooterStyle.CssClass
gvProducts.Columns[3].FooterStyle.CssClass = "ddl_Class_new";
并且指定的强制转换意味着存在Tot1
或中的字段Tot2
不能转换为Int32
. 可能是因为您IFNULL
在查询中使用,ISNULL
如果您使用 MS SQL 或通过调试检查 aspnet 中的数据是否是您实际期望的数据,请将其更改为。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句