如何求和datagridview的单元格值 [英] How to sum cell values of datagridview

查看:92
本文介绍了如何求和datagridview的单元格值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hello Guys,我想在每行的最后一个单元格中显示总和值

http://imgur.com/a/9qcKx



我尝试过:



DataSet dsa = new DataSet();

DataTable dt1 = new DataTable();

dsa.Tables.Add(dt1);

OleDbDataAdapter da = new OleDbDataAdapter();

da = new OleDbDataAdapter (SELECT column2,+

Sum(MediumVal)As [Dine In],+

Sum(LargeVal)As [Deliery],+

Sum(RoyalVal)As [Take Away]+

From(+

SELECT+

column2 As [column2],+

Switch(column3 = \Table1 / Table\OR column3 = \Table2 / Table\OR column3 = \表3 /表\OR column3 = \表4 /表\OR column3 = \表5 /表\OR column3 = \表6 /表\OR column3 = \表7 /表\OR column3 = \Table8 / Table \OR column3 = \Table9 / Tab le\OR column3 = \Table10 / Table \OR column3 = \Table11 / Table \OR column3 = \Table12 / Table\OR column3 = \Table13 / Table\\ \\OR column3 = \Table14 / Table \OR column3 = \Table15 / Table \OR column3 = \Table16 / Table\OR column3 = \Table17 / Table\ OR column3 = \Table18 / Table \OR column3 = \Table19 / Table\OR column3 = \Table20 / Table\,1,True,0)As [MediumVal],+

Switch(column3 = \Table1 / Delivery\OR column3 = \Table2 / Delivery\OR column3 = \Table3 / Delivery\OR column3 = \\ \\Table4 / Delivery \OR column3 = \Table5 / Delivery\OR column3 = \Table6 / Delivery\OR column3 = \Table7 / Delivery\OR column3 = \表8 / Delivery \OR column3 = \Table9 / Delivery \OR column3 = \Table10 / Delivery\OR column3 = \Table11 / Delivery\OR column3 = \Table12 / Delivery\OR column3 = \Table13 / Delivery\O R column3 = \Table14 / Delivery\OR column3 = \Table15 / Delivery\OR column3 = \Table16 / Delivery\OR column3 = \Table17 / Delivery\OR column3 = \Table18 / Delivery\OR column3 = \Table19 / Delivery\OR column3 = \Table20 / Delivery\,1,True,0)As [LargeVal],+

Switch(column3 = \Take Away \,1,True,0)As [RoyalVal]+

FROM Total+

#之间的[日期]+ dateTimePicker1.Value.ToString(dd / MM / yyyy)+

#AND#+ dateTimePicker2.Value.ToString(dd / MM / yyyy)+#AND [column2] IN('小.......','中......','大.......','前大。 ...')+

)Group By column2,VCON);

da.Fill(dt1);

dataGridView1。 DataSource = dt1;

VCON.Close();

dataGridView1.Columns [0] .Width = 286;

dataGridView1.Columns [1 ] .Width = 180;

dataGridView1.Columns [2] .Width = 180;

dataGridView1.Columns [3] .Width = 180;

dataGridView1.Columns [4] .Width = 180;

Hello Guys, i want to show sum values in last cell of each row
http://imgur.com/a/9qcKx

What I have tried:

DataSet dsa = new DataSet();
DataTable dt1 = new DataTable();
dsa.Tables.Add(dt1);
OleDbDataAdapter da = new OleDbDataAdapter();
da = new OleDbDataAdapter("SELECT column2," +
"Sum(MediumVal) As [Dine In], " +
"Sum(LargeVal) As [Deliery], " +
"Sum(RoyalVal) As [Take Away] " +
"From ( " +
"SELECT " +
"column2 As [column2], " +
"Switch(column3=\"Table1/Table\" OR column3=\"Table2/Table\"OR column3=\"Table3/Table\"OR column3=\"Table4/Table\"OR column3=\"Table5/Table\"OR column3=\"Table6/Table\"OR column3=\"Table7/Table\"OR column3=\"Table8/Table\"OR column3=\"Table9/Table\"OR column3=\"Table10/Table\"OR column3=\"Table11/Table\"OR column3=\"Table12/Table\"OR column3=\"Table13/Table\"OR column3=\"Table14/Table\"OR column3=\"Table15/Table\"OR column3=\"Table16/Table\"OR column3=\"Table17/Table\"OR column3=\"Table18/Table\"OR column3=\"Table19/Table\"OR column3=\"Table20/Table\", 1,True,0) As [MediumVal], " +
"Switch(column3=\"Table1/Delivery\"OR column3=\"Table2/Delivery\"OR column3=\"Table3/Delivery\"OR column3=\"Table4/Delivery\"OR column3=\"Table5/Delivery\"OR column3=\"Table6/Delivery\"OR column3=\"Table7/Delivery\"OR column3=\"Table8/Delivery\"OR column3=\"Table9/Delivery\"OR column3=\"Table10/Delivery\"OR column3=\"Table11/Delivery\"OR column3=\"Table12/Delivery\"OR column3=\"Table13/Delivery\"OR column3=\"Table14/Delivery\"OR column3=\"Table15/Delivery\"OR column3=\"Table16/Delivery\"OR column3=\"Table17/Delivery\"OR column3=\"Table18/Delivery\"OR column3=\"Table19/Delivery\"OR column3=\"Table20/Delivery\", 1,True,0) As [LargeVal], " +
"Switch(column3=\"Take Away\", 1,True,0) As [RoyalVal] " +
"FROM Total " +
" Where [Date] between #" + dateTimePicker1.Value.ToString("dd/MM/yyyy") +
"# AND #" + dateTimePicker2.Value.ToString("dd/MM/yyyy") + "# AND [column2] IN('Small.......','Medium......','Large.......','Ex Large....')" +
" ) Group By column2", VCON);
da.Fill(dt1);
dataGridView1.DataSource = dt1;
VCON.Close();
dataGridView1.Columns[0].Width = 286;
dataGridView1.Columns[1].Width = 180;
dataGridView1.Columns[2].Width = 180;
dataGridView1.Columns[3].Width = 180;
dataGridView1.Columns[4].Width = 180;

推荐答案

0)为您的项目创建模型

1)将数据库查询的结果加载到模型列表中项目

2)创建一个包含所需求和字段的新模型项(使用LINQ获取总和)。

3)并将新模型项列入列表

4)将列表绑定到dataGridView控件。
0) Create a model for your items
1) Load the results of the database query into a list of model items
2) Create a new model item that contains the desired summed fields (use LINQ to get your sums).
3) And the new model item to the list
4) Bind the list to the dataGridView control.


尝试这样



try like this

DataTable dt = new DataTable();
           dt.Columns.Add("Size");
           dt.Columns.Add("Dine In");
           dt.Columns.Add("Delivery");
           dt.Columns.Add("Take Away");
           dt.Rows.Add("large", 12, 2, 0);
           dt.Rows.Add("Medium", 6, 1, 0);
           dt.Rows.Add("Small", 6, 1, 0);
           dataGridView1.DataSource = dt;
           for (int i = 1; i < dt.Columns.Count; i++)
           {
               double sum = 0;
               for (int j = 0; j < dt.Rows.Count; j++)
               {
                   sum += Convert.ToDouble(dt.Rows[j][i]);
               }
               dataGridView1.Rows[dt.Rows.Count].Cells[i].Value = sum.ToString();
           }


这篇关于如何求和datagridview的单元格值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆