0

我想将两列的数据相乘并在第三列中显示。

例如:

1st Column: Quantity
2nd Column: Rate
3rd Column: Price

当用户输入数量和费率的数据时,我想乘以Quantity=2rate=50自动在我想要100出现的价格列中。

同时我想在用户输入数量和费率的数据时进行划分Price=100rate=50自动在我想要2出现的数量列中。

当用户输入数量和费率的数据时Price=100Quantity=2我想自动出现在费率列50中。

这三个将发生在同一个 datagridview 中。用户只需输入这三个中的任何两个字段,第三个将自动出现。

使用 C#、VS2008、SQL 2008

private void dataGridView2_CellEndEdit(object sender, DataGridViewCellEventArgs e) 
{ 
    int quantity,rate; 
    for (int i = 0; i < dataGridView2.Rows.Count; i++) 
    { 
        if(int.TryParse(dataGridView2.Rows[i].Cells[1].Value.ToString(), out quantity) && int.TryParse(dataGridView2.Rows[i].Cells[2].Value.ToString(), out rate)) 
        { 
             int price = quantity * rate; dataGridView2.Rows[i].Cells[3].Value = price.ToString(); 
        } 
    } 
}

我写了这段代码。那里显示一个错误。对象引用未设置为对象的实例

if(int.TryParse(dataGridView2.Rows[i].Cells[1].Value.ToString(), out quantity) && int.TryParse(dataGridView2.Rows[i].Cells[2].Value.ToString(), out rate)) 

这条线。


在此处输入图像描述

我想这样做。用户可以填写这 3 个字段中的任意 2 个字段。第三个字段将自动填写。

4

3 回答 3

2

处理CellEndEdit你的gridview的事件。在那种情况下,计算并将值分配给第三列

就像是

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
        int quantity,rate;
        if (int.TryParse(dataGridView1.Rows[e.RowIndex].Cells["quantity"].Value.ToString(), out quantity) && int.TryParse(dataGridView1.Rows[e.RowIndex].Cells["rate"].Value.ToString(), out rate))
        {
            int price = quantity * rate;
            dataGridView1.Rows[e.RowIndex].Cells["price"].Value = price.ToString();
         }
    }
于 2013-09-06T06:02:35.073 回答
0

这是适合您的解决方案。

double s = Convert.ToDouble(DataGridShowAddedProducts.Rows[0].Cells[2].Value);
        double s1 = Convert.ToDouble(DataGridShowAddedProducts.Rows[0].Cells[2].Value);
        double s13 = s1 * s;
        MessageBox.Show(s13.ToString());
于 2021-08-23T13:26:35.270 回答
0
decimal s=0, s1=0,s13 = 0;
        for (int j = 0; j< dgvsaledetails.Rows.Count; ++j)
        {
            s = Convert.ToDecimal(dgvsaledetails.Rows[j].Cells[6].Value);
            s1 = Convert.ToDecimal(dgvsaledetails.Rows[j].Cells[10].Value);
            s13 = s * s1;
            dgvsaledetails.Rows[j].Cells["amount"].Value = s13.ToString();

        }
于 2022-01-25T07:49:55.870 回答