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;
 }

我仍然NullReferenceException在 11 号线接收。

4

1 回答 1

5

您的一个或多个单元格包含 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 回答