作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要使用 C# 在 ASP.Net 中的 GridView Footer 中显示列总数(Grand Total)。
我有两个问题:
Specified cast is not valid.
当加上Tot2的Sum时。
如何解决?
提前感谢您的帮助。
这是 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();
最佳答案
首先,您使用 FooterStyle.CssClass
设置页脚的 css
gvProducts.Columns[3].FooterStyle.CssClass = "ddl_Class_new";
而指定类型转换意味着Tot1
或Tot2
中有不能转换为Int32
的字段。可能是因为您在查询中使用了 IFNULL
,如果您使用 MS SQL,请将其更改为 ISNULL
,或者通过调试检查 aspnet 中的数据是否是您实际期望的数据。
关于C#使用asp.net在gridview页脚中显示总列总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45796599/
我是一名优秀的程序员,十分优秀!