0

空/nullであるかどうかにかかわらず、列のセルのセル値をチェックしているので、NullReferenceException.

どうすればそれを行うことがIsNullOrWhiteSpace()できIsNullOrEmpty()、どういうわけかその例外が発生します。

ここに私が使用しているコードの一部があります:

s = "Total = " + dataGridView1.Rows[0].Cells.Count +
    "0 = " + dataGridView1.Rows[0].Cells[0].Value.ToString() +
    "/n  1 = " + dataGridView1.Rows[0].Cells[1].Value.ToString() +
    "/n  2= " + dataGridView1.Rows[0].Cells[2].Value.ToString() +
    "/n  3 = " + dataGridView1.Rows[0].Cells[3].Value.ToString() +
    "/n  4= " + dataGridView1.Rows[0].Cells[4].Value.ToString() +
    "/n  5 = " + dataGridView1.Rows[0].Cells[5].Value.ToString() +
    "/n  6= " + dataGridView1.Rows[0].Cells[6].Value.ToString() +
    "/n  7 = " + dataGridView1.Rows[0].Cells[7].Value.ToString();

    if (string.IsNullOrEmpty(dataGridView1.Rows[0].Cells[8].Value.ToString()))
    {

    }
    else
    {
        s += "/n  8 = " + dataGridView1.Rows[0].Cells[8].Value.ToString();
    }

私はそれを置くことを試みたそれらの方法を試しました==null、私は試しまし!=nullた. 他に何がありますか、または正確に間違っていることは何ですか?どうすれば正しく行うことができますか?

4

4 に答える 4

5

コードでその例外をスローできる場所はたくさんあります..

dataGridView1.Rows[0]  //here
             .Cells[0] //here
             .Value    //and here
             .ToString() 

ToString()just タイプは必要ないと思います:

"... "+ dataGridView1.Rows[0].Cells[0].Value

あなたのif声明でこれを行います:

if (string.IsNullOrEmpty(dataGridView1.Rows[0].Cells[8].Value as string))
于 2013-10-31T14:54:31.453 に答える
0

dataGridView1.Rows[0].Cells[8].Value.ToString()Value が null の場合、NullReferenceException が発生すると思います。したがって、チェックする必要がdataGridView1.Rows[0].Cells[8].Value != nullあり、それを文字列に変換できます

于 2013-10-31T14:53:05.993 に答える
0

null ケースをチェックして処理するコード行を追加できます。

var value = dataGridView1.Rows[0].Cells[0].Value;
string s = (value == null ? string.Empty : value.ToString());

値が null の場合、ToString() は評価されず、プログラムは NullReferenceException をスローできません。

于 2013-10-31T14:51:52.767 に答える