c# datagridview 底部合计

xiehuangda 2012-01-13 03:33:46
c# winform
datagridview 最底部做一个合计
请教详细代码。

谢谢!!


数据库SQL2005
表名:biaocc

字段:ID, jiage

现在通过了datagridview列出来数据后,想在底部做一个 jiage这个字段的合计。
希望各位写一个很详细的代码,谢谢。
...全文
767 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiehuangda 2012-09-22
  • 打赏
  • 举报
回复
后来还是自己解决问题了,首先在DGV里设置启用插入。
然后,再以下的参数里写入以下对应的代码即可。
有需要的朋友,可以COPY来用。


private void DGV_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
//有数据时取消默认选中第一行
if (this.DGV.Rows.Count > 0)
{
this.DGV.Rows[0].Selected = false;
}

//在首列自动排序号
for (int i = 0; i < DGV.Rows.Count; i++)
{
int j = i + 1;
DGV.Rows[i].HeaderCell.Value = j.ToString();
DGV.Rows[this.DGV.Rows.Count - 1].HeaderCell.Value = j.ToString("合计");//最后一行显示合计
}

//底部合计
Double he1 = 0;//积分
Double he2 = 0;//余额
Double he3 = 0;//金额
for (Int32 ih = 0; ih < DGV.Rows.Count - 1; ih++)
{
he1 += Convert.ToDouble(this.DGV.Rows[ih].Cells["Score"].Value);//积分
he2 += Convert.ToDouble(this.DGV.Rows[ih].Cells["Yue"].Value);//余额
he3 += Convert.ToDouble(this.DGV.Rows[ih].Cells["Mem_fst_amt"].Value);//金额
}
DataGridViewRow dgr = DGV.Rows[DGV.Rows.Count - 1];
dgr.Cells["Score"].Value = he1;////积分
dgr.Cells["Yue"].Value = he2;//余额
dgr.Cells["Mem_fst_amt"].Value = he3;//金额
}


private void DGV_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
//设置最后一行,合计行的参数
DataGridViewRow dgr = DGV.Rows[DGV.Rows.Count - 1];
dgr.DefaultCellStyle.BackColor = Color.FromArgb(227, 244, 255);//背景颜色
dgr.DefaultCellStyle.Font = new Font("宋体", 9, FontStyle.Bold);//字体大小
dgr.DefaultCellStyle.ForeColor = Color.DodgerBlue;//字体颜色
}



private void DGV_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
//设定DGV,值符合的行,字体颜色,最后一行除外
for (int i = 0; i < DGV.Rows.Count - 1; i++)
{
//亏本销售
if ((int)DGV.Rows[i].Cells["Addssl"].Value != 0 && (decimal)DGV.Rows[i].Cells["Addyl"].Value < 0)
{
DGV.Rows[i].DefaultCellStyle.ForeColor = Color.Red;//红色
}
}
}




private void DGV_CellClick(object sender, DataGridViewCellEventArgs e)
{
//单击取消选中最后一行.必须取消,否则全选时,双击就出错
DGV.Rows[this.DGV.Rows.Count - 1].Selected = false;
}
sglogin 2012-01-20
  • 打赏
  • 举报
回复
11楼的不错
DENQH 2012-01-19
  • 打赏
  • 举报
回复
select case when (grouping(id) = 1) then '合计' else isnll(id, '没数据' end as id,sum(jiage) as jiage from biaocc group by id  with cube
a82344626 2012-01-19
  • 打赏
  • 举报
回复
select ID, jiage from Tabel
union
select sum(ID) as ID, '' from Tabel
baizongjie 2012-01-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wangxu8550 的回复:]
string strConn = "Data Source=.;Initial Catalog="数据库名";Persist Security Info=True;User ID=账号;Password=密码"; // 定义连接数据库串
SqlConnection ConnSql = new SqlConnection(strConn);
ConnSql.Open();
stri……
[/Quote]

这个方法你看明白以后我想你就可以贴了
淘淘大师 2012-01-19
  • 打赏
  • 举报
回复

<FooterTemplate>
<asp:Label ID="lbSumMoney" runat="server" Text="合计" CssClass="input" />
</FooterTemplate>
<FooterTemplate>
<asp:Label ID="lbSumTotal" runat="server"
CssClass="input" Style="text-align: right"/>
</FooterTemplate>



OnRowDataBound="gvWOContent_RowDataBound"//进行统计
PerDign 2012-01-19
  • 打赏
  • 举报
回复
string strConn = "Data Source=.;Initial Catalog="数据库名";Persist Security Info=True;User ID=账号;Password=密码"; // 定义连接数据库串
SqlConnection ConnSql = new SqlConnection(strConn);
ConnSql.Open();
string SQLstr = "select jiage from biaocc";
SqlDataAdapter da = new SqlDataAdapter(SQLstr, ConnSql);
DataSet ds = new DataSet(); //ADO.NET 这些东西 返回dataset
da.Fill(ds, "biaocc"); // SqlDataAdapter() 方法填充连接dataset
ConnSql.Close();
int aa = 0; int bb = 0; //定义整型 a,b
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
aa = int.Parse(ds.Tables[0].Rows[0]["jiage"].ToString());
bb += aa;

}
TextBox1.Text = bb.ToString(); //我用的textbox显示值
也许对你有帮助
蝶恋花雨 2012-01-14
  • 打赏
  • 举报
回复
http://blog.csdn.net/21aspnet/article/details/1540301
看 17.GridView加入自动求和求平均值小计 你可以通过此网页学到好多东西。
xiehuangda 2012-01-14
  • 打赏
  • 举报
回复
请教,写一个详细的代码
xiehuangda 2012-01-13
  • 打赏
  • 举报
回复
嗯。写一个详细代码,可以吗? 让,合理化一点的。合计
ycproc 2012-01-13
  • 打赏
  • 举报
回复
通过 select count(colName) 或者 select sum(colName) 等再做一次查询,得出合计结果追加到最后一列


不合理。这样的效率问题很大

特别是数据量稍微大一点 就慢得要死
吾非大神 2012-01-13
  • 打赏
  • 举报
回复
合计的 那一行

通过 select count(colName) 或者 select sum(colName) 等再做一次查询,得出合计结果追加到最后一列

或者还有其他好办法,坐等高手
xiehuangda 2012-01-13
  • 打赏
  • 举报
回复
能写个详细的代码,或者例子吗
yanele 2012-01-13
  • 打赏
  • 举报
回复
1、在datagridview底部添加行;
2、循环行记录求和,写入合计行对应单元格。
只在此山中 2012-01-13
  • 打赏
  • 举报
回复
我以前的做法,就是在datagridview的数据表最后添加1条记录,自己计算合计值,写入这条记录。

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧