我有一个用户名标签,该标签是通过用户名登录名传递的。在其中一种获胜表格中,我有一个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,但是它将显示所有用户总数。
答案 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
。