我有一个datagridview,用于显示交易记录。 datagridview中的一列是“Total”,即“Quantity”的“SubTotal”次。
我的问题是,如何通过将datagridview中的所有“总计”计算到文本框中来制作“GrandTotal”?
以下是截图:
如果你在上面的datagridview中看到,有一个名为“Total”的列,这个“Total”是从“Quantity”乘以“SubTotal”获得的,我想要的是我想要计算“Total”(总和)列中的“总计”到文本框中。
我该怎么做?
我已经考虑过了,但我不知道如何计算(总和)数据网格视图中的“总计”列到文本框中。
感谢您的回答。 非常感谢你!
答案 0 :(得分:2)
遍历每一行,找到包含总值的单元格。将此总值转换为double(任何数字数据结构),并通过将每个值与之前的总计数相加来计算总计。
没有Linq
double result = 0;
foreach (DataGridViewRow row in DataGridView.Rows)
{
result += Convert.ToDouble(row.Cells["Total"].Value);
}
使用Linq
double result = DataGridView.Rows.Cast<DataGridViewRow>().Sum(row => Convert.ToDouble(row.Cells["Total"].Value));
答案 1 :(得分:0)
如果您绑定List或DataTable,那么只需使用LINQ的SUM方法
答案 2 :(得分:0)
//您可以在按钮
的点击事件中使用它str = "YOUR SQL QUERY";
objCom = new SqlCommand(str, objCon);
objDataAdapter = new SqlDataAdapter(objCom);
objDataSet = new DataSet();
objDataAdapter.Fill(objDataSet, "TABLE NAME");
dataGridView2.DataMember = "TABLE NAME";
dataGridView2.DataSource = objDataSet;
dataGridView2[3, dataGridView2.Rows.Count - 1].Value = "Total";
dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[3].Style.ForeColor = Color.White;
dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[3].Style.BackColor = Color.Green;
dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[4].Style.ForeColor = Color.White;
double sum = 0;
for (int row = 0; row < dataGridView2.Rows.Count; row++)
{
sum = sum + Convert.ToDouble(dataGridView2.Rows[row].Cells[4].Value);
}
dataGridView2.Rows[dataGridView2.Rows.Count - 1].Cells[4].Value = sum.ToString();