datagridview行中两个多重列的结果

时间:2013-07-31 09:19:10

标签: c# winforms datagridview

我有这个代码来计算summary of 2 multiplied columns中所有行的datagridview,并在textbox中显示结果。

我有一个名为sum的第三列,其中我想显示每行的特定结果。对不起,因为我不知道怎么能这样做,所以我还没有尝试过任何事情。拜托,请你指点我?

感谢大家的时间,意见或答案。

private void vypocti_odvody(int price, int vat, int tot_rows2)
    {
        try
        {

        double outVal = 0;
        foreach (DataGridViewRow row in dataGridView1.Rows)

        {
            outVal = outVal + (Convert.ToDouble(row.Cells[price].Value)/100) * Convert.ToDouble(row.Cells[vat].Value) + (Convert.ToDouble(row.Cells[price].Value));
        }

     //   s_ub_celk.Text = (((a / 100) * b) + a).ToString();
        Convert.ToDecimal ( result.Text = outVal.ToString()) ;
    }
    catch (Exception ex)
    {
        MessageBox.Show("Chybové hlášení K3 " + ex.Message.ToString());
    }


}

3 个答案:

答案 0 :(得分:2)

您可以通过指定列Value属性

来简单地为列提供值
private void vypocti_odvody(int price, int vat, int tot_rows2)
    {
        try
        {
        double outVal = 0;
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            double localSum = (Convert.ToDouble(row.Cells[price].Value)/100) * Convert.ToDouble(row.Cells[vat].Value) + (Convert.ToDouble(row.Cells[price].Value));
            outVal = outVal + localSum;
            row.Cells[sumcolumn].Value = localSum;
        }
        Convert.ToDecimal ( result.Text = outVal.ToString()) ;
    }
    catch (Exception ex)
    {
        MessageBox.Show("Chybové hlášení K3 " + ex.Message.ToString());
    }
}

只需替换sumcolumn名称。

答案 1 :(得分:1)

只需像这样修改foreach循环:

double outVal = 0;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
    var sum = (Convert.ToDouble(row.Cells[price].Value)/100) * Convert.ToDouble(row.Cells[vat].Value) + (Convert.ToDouble(row.Cells[price].Value));
    row.Cells["sum"].Value = sum;
    outVal += sum;
}

你必须引入新变量,它将保存两个单元格的和值,以便在新单元格中设置它,之后将其添加到总和中。

答案 2 :(得分:0)

datagridview有一个名为columns的属性,您可以在其中查看列“sum”的位置 但对你来说最简单的事情就是:

row.Cells["sum"].Value=10;