1

我得到了这段代码,它计算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());
    }


}
4

3 回答 3

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名字就行了。

于 2013-07-31T09:22:08.260 回答
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;
}

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

于 2013-07-31T09:23:44.313 回答
0

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

row.Cells["sum"].Value=10;
于 2013-07-31T09:27:52.040 回答