首页 > 解决方案 > 在 sum 之后对 DataGridView 进行微调时出现问题

问题描述

我是编码新手,在尝试将 DataGridView 的总和值相乘时遇到了一些问题。

基本上,我想要做的是将 DataGridView 列的所有值相加到一个文本框中,然后将其乘以另一个文本框中的值。

到目前为止,我已经能够总结 de DGV 购买的所有值,但似乎无法弄清楚如何将它与其他文本框相乘。

我的代码如下:

private void BtAgregar_Click(object sender, EventArgs e)
{
    if (this.DgvBuscador.DataSource != null)
    {
        this.DgvCarrito.DataSource = null;
    }
    else
    {
        this.DgvCarrito.Rows.Clear();
    }
    for (int i = 0; i < DgvBuscador.SelectedRows.Count; i++)
    {
        int index = DgvCarrito.Rows.Add();
        DgvCarrito.Rows[index].Cells[0].Value = DgvBuscador.SelectedRows[i].Cells[0].Value.ToString();
        DgvCarrito.Rows[index].Cells[1].Value = DgvBuscador.SelectedRows[i].Cells[1].Value.ToString();
        DgvCarrito.Rows[index].Cells[2].Value = DgvBuscador.SelectedRows[i].Cells[2].Value.ToString();
        DgvCarrito.Rows[index].Cells[3].Value = DgvBuscador.SelectedRows[i].Cells[3].Value.ToString();
        DgvCarrito.Rows[index].Cells[4].Value = DgvBuscador.SelectedRows[i].Cells[4].Value.ToString();
        DgvCarrito.Rows[index].Cells[5].Value = DgvBuscador.SelectedRows[i].Cells[5].Value.ToString();
        DgvCarrito.Rows[index].Cells[6].Value = DgvBuscador.SelectedRows[i].Cells[6].Value.ToString();
    }
    TbTotal.Text = (from DataGridViewRow row in DgvCarrito.Rows
                    where row.Cells[6].FormattedValue.ToString() != string.Empty
                    select Convert.ToInt32(row.Cells[6].FormattedValue)).Sum().ToString();
}

标签: c#winforms

解决方案


我尝试了一种我想要的不同方法并且它奏效了。

            TbTotal.Text = (from DataGridViewRow row in DgvCarrito.Rows
                        where row.Cells[6].FormattedValue.ToString() != string.Empty
                        select Convert.ToInt32(row.Cells[6].FormattedValue) * Convert.ToInt32(TbNoches.Text)).Sum().ToString();

推荐阅读