2017-02-26 18 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文で行[i + 1]と言っていますか? –

+0

は、次の行がNULLかどうかを確認します –

答えて

0

は、Valueオブジェクトがnullの場合、ToStringメソッド()メソッドはnull値を返しません代わりに

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

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

を試し、それが例外をスローします。

+0

ありがとうございます。それは今働く。 –

関連する問題