0

私は問題があります。

でデータを作成するための 2 つのループ (行用と列用) がありますDataTable。名前付きの列のセルが空かどうかを確認したいのですが、空の"Name"場合はこの行を追加しないでください。ここで質問があります: 行の追加をキャンセルするにはどうすればよいですか?

いくつかのコードを取得しました:

for (int i = 0; i < data.Count(); i++)
{

    cell = data.ElementAt(i);
    DataRow row;
    row = dataTable.NewRow();

    foreach (string column in columns)
    {
        if (row["Name"] == "")
        {
            row = null;
        }
        else
        {
            row[column] = cell;
        }
    }

    if (row != null)
    {
        dataTable.Rows.Add(row);
    }
}

しかし、次のループが開始された後、スローされますNullException: Object reference not set to an instance of an object.

一般に、呼び出された列でセルの値が空でない行のみをDataTableに追加したい"Name"(つまり、「」がどこにあるか)。

それを正しく行うための最良の方法または最も簡単な方法は何ですか?

4

1 に答える 1

0

次のように変更します。

....
    foreach (string column in columns)
        {
            if (row["Name"] == "")
            {
                row = null;
                break; //--> Add this line
            }
            else
            {
                row[column] = cell;
            }
        }
....
于 2013-09-25T17:40:44.817 に答える