2017-02-26 63 views
0

因此,我在Windows窗体中工作,并试图删除具有相同值的行。代码在这里:如何删除datagridview中具有相同值的行

for(int i = 0; i < dataGridView2.Rows.Count - 1; i++) 
      { 
       if (dataGridView2.Rows[i+1].Cells[0].Value.ToString().Equals(null)) 
        break; 
       else 
       { 
        if (dataGridView2.Rows[i].Cells[0].Value.ToString() != dataGridView2.Rows[i + 1].Cells[0].Value.ToString()) 
         continue; 
        else 
        { 
         dataGridView2.Rows.RemoveAt(i); 
         i = i - 1; 
        } 
       } 
      } 

所以第一列包含名称,我想删除具有相同名称的行。 但是我在第一个“if”时出现以下错误:

“附加信息:未将对象引用设置为对象的实例。”

想法是,如果我没有更多的行比我不得不完成工作。如果不是,我必须将行的字符串值与下一行进行比较。如果相同,我将首先删除,其他的继续。

有没有人我想法如何解决这个错误信息?

+0

你为什么在第一个if语句中说Rows [i + 1]? –

+0

检查下一行是否为空 –

回答

0

尝试

dataGridView2.Rows[i+1].Cells[0].Value == null 

,而不是

dataGridView2.Rows[i+1].Cells[0].Value.ToString().Equals(null) 

如果值对象为空,ToString()方法将不会返回空值,它会抛出异常。

+0

非常感谢。它现在有效。 –