对象引用未设置为访问DataGridView的对象的实例

本文关键字:对象 实例 DataGridView 访问 设置 对象引用 | 更新日期: 2023-09-27 18:05:33

我想将数据从一个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;
 }

我仍然在第11行接收NullReferenceException

对象引用未设置为访问DataGridView的对象的实例

一个或多个单元格包含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();;