我如何通过用户名求和datagridview的值

时间:2019-02-13 14:15:42

标签: c# winforms

我有一个用户名标签,该标签是通过用户名登录名传递的。在其中一种获胜表格中,我有一个datagridview,其中一列以十进制(3,1)存储数字。
我有一个for循环,它遍历所有数字并求和。但是我想做的只是基于用户名登录来汇总数字,该用户名作为username_lbl传递给此winform。可以在for循环内完成

我尝试了一个for循环,该循环汇总了所有用户。但我不确定如何根据用户名求和。

public Mileage(string Username)
{
    InitializeComponent();
    Username_Mileage_lbl.Text = Username;
 } 

private void Total_Miles_btn_Click(object sender, EventArgs e)
{
    int sum = 0;
    for (int i = 0; i < Mileage_dataGridView.Rows.Count; ++i )
    {
        sum += Convert.ToInt32(Mileage_dataGridView.Rows[i].Cells[5].Value);
    }
    MessageBox.Show(sum.ToString());
}

我希望用户名的总数为100,但是它将显示所有用户总数。

1 个答案:

答案 0 :(得分:2)

在循环中,您可以将行的用户名与标签中的用户名进行比较,并且前提是它们匹配添加到sum上。
假设用户名位于您的datagridview的第5个单元格中,然后使用此

private void Total_Miles_btn_Click(object sender, EventArgs e)
{
    int sum = 0;
    for (int i = 0; i < Mileage_dataGridView.Rows.Count; ++i )
    {
        if (Username_Mileage_lbl.Text == Mileage_dataGridView.Rows[i].Cells[4].Value.ToString())
        {
            sum += Convert.ToInt32(Mileage_dataGridView.Rows[i].Cells[5].Value);
        }
    }
    MessageBox.Show(sum.ToString());
}

例如,如果大小写不总是匹配,您可能需要做更多的检查和操作,例如ToLower