如何从DataGridView中的列获取所有值

时间:2015-01-26 06:42:21

标签: c# datagridview windows-forms-designer

你知道,如果DataGridView中已经存在项目名称,我试图添加数量。所以我做了一个for循环来检查DataGridView中的每一行。它做的只是添加更多行。

for (int x = 0; x < dataGridView.Rows.Count; x++)
{
    if (dataGridView.Rows[x].Cells[1].Value.ToString() == dataTable.Rows[0][2].ToString())
    {
        dataGridView.Rows[x].Cells[0].Value = int.Parse(dataGridView.Rows[x].Cells[0].Value.ToString()) + 1;
        dataGridView.Rows[x].Cells[2].Value = Convert.ToDecimal(dataTable.Rows[0][4].ToString()) * Convert.ToDecimal(dataGridView.Rows[x].Cells[0].Value.ToString());
    }
    else
    {
        quantity = 1;
        dataGridView.Rows.Add(quantity, dataTable.Rows[0][2], dataTable.Rows[0][4]);
    }
}

2 个答案:

答案 0 :(得分:0)

我认为在字符串比较中使用.ToLower()或.ToUpper()会更好。

答案 1 :(得分:0)

我解决了!我只是使用for循环制作了一个检查器!

for (int x = 0; x < dataGridView.Rows.Count; x++)
{
     if (dataGridView.Rows[x].Cells[1].Value.ToString() == dataTable.Rows[0][2].ToString())
     {
          same = true;
          counter = x;
     }
}
if (same == true)
{
     dataGridView.Rows[counter].Cells[0].Value = int.Parse(dataGridView.Rows[counter].Cells[0].Value.ToString()) + 1;
     dataGridView.Rows[counter].Cells[2].Value = Convert.ToDecimal(dataTable.Rows[0][4].ToString()) * Convert.ToDecimal(dataGridView.Rows[counter].Cells[0].Value.ToString());
}
else
{
    quantity = 1;
    dataGridView.Rows.Add(quantity, dataTable.Rows[0][2], dataTable.Rows[0][4]);
}