将列中数字的总和乘以另一列中的数字之和?访问C#

时间:2014-04-21 05:21:42

标签: c# database ms-access

此程序在数据网格视图中显示数据库信息。我需要在第1列中添加所有数字,在第3列中添加所有数字,然后将两个总和相乘。

此代码仅将第1列和第3列与最后一行相乘。有什么建议吗?

这是我第一次连接到数据库,所以如果这看起来像一个愚蠢的问题我很抱歉

                foreach (DataRow currentRow in itemDS.Tables[0].Rows)
                {
                    // add to data grid view
                    invoiceDataGridView.Rows.Add(currentRow[1].ToString(),   currentRow[2].ToString(), currentRow[3].ToString());

                    var itemQuant = Convert.ToDecimal(currentRow[1]);
                    var priceEach = Convert.ToDecimal(currentRow[3]);

                    decimal subTotal = itemQuant * priceEach;

                    subTotalOutput.Text = subTotal.ToString();
                }

2 个答案:

答案 0 :(得分:0)

你的意思是你不确定如何在循环结构中保持运行总数?如果是这样的话:

decimal total = 0; //declare outside the foreach

foreach (DataRow currentRow in itemDS.Tables[0].Rows)
                {
                    // add to data grid view
                    invoiceDataGridView.Rows.Add(currentRow[1].ToString(),   currentRow[2].ToString(), currentRow[3].ToString());

                    var itemQuant = Convert.ToDecimal(currentRow[1]);
                    var priceEach = Convert.ToDecimal(currentRow[3]);

                    decimal subTotal = itemQuant * priceEach;

                    total += subTotal;
                }

//do something with total here, after for each finishes

答案 1 :(得分:0)

你可以使用linq来获取一列的总和。

var sum = itemDS.Tables[0].AsEnumerable().Sum(dr => dr.Field<int>("value"));

"value"将是itemDS内数据表的列名。你必须在这里指定你的列名。

像上面的语句一样获取下一列的总和。添加乘法..

希望这会有所帮助.. :)

相关问题