如何求和datagridview的单元格值 [英] How to sum cell values of 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屋!