0

DataGridViewから別のデータにデータを転送したいのですが、これが私のコードのサンプルです:

private void btnShow(object sender, EventArgs e)
{
    DataTable dtr = new DataTable();
    dtr.Columns.Add(new DataColumn("Name", typeof(string)));
    dtr.Columns.Add(new DataColumn("Label", typeof(string)));
    dtr.Columns.Add(new DataColumn("Domain", typeof(string)));

    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
        DataRow erow = dtr.NewRow();
        erow[0] = dataGridView1.Rows[i].Cells[0].Value.ToString();
        erow[1] = dataGridView1.Rows[i].Cells[1].Value.ToString();
        erow[2] = dataGridView1.Rows[i].Cells[2].Value.ToString();
        dtr.Rows.Add(erow);
    }

    dataGridView2.DataSource = dtr;
 }

私はまだNullReferenceException11行目で受信しています。

4

1 に答える 1

5

1つ以上のセルにNULL値が含まれています。
そのNULL値を読み取り、NULL参照でメソッドToString()を呼び出そうとします。
もちろん、これは前述の例外で失敗します

したがって、nullの場合に空の文字列を格納する場合

erow[0] = dataGridView1.Rows[i].Cells[0].Value == null ? 
          string.Empty : dataGridView1.Rows[i].Cells[0].Value.ToString();
erow[1] = dataGridView1.Rows[i].Cells[1].Value == null ? 
          string.Empty : dataGridView1.Rows[i].Cells[1].Value.ToString();
erow[2] = dataGridView1.Rows[i].Cells[2].Value == null ? 
          string.Empty : dataGridView1.Rows[i].Cells[2].Value.ToString();;
于 2013-03-25T07:55:10.260 に答える