2017-02-26 65 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

非常感謝。它現在有效。 –