-1

我想將數據從一個DataGridView轉移到另一個實例,這裏是我的代碼示例:對象引用未設置到對象訪問的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.

+0

究竟做第11行的樣子代碼的情況下?如果它訪問單元格值,是否在網格 – V4Vendetta 2013-03-25 07:48:55

+0

第11行中有3列(單元[2]或單元[3]),'erow = dtr.NewRow();'對我來說看起來很好。你確定這個異常在第11行中出現嗎? – 2013-03-25 07:49:12

+0

此代碼是否在Postback上運行?可能是ASP.NET生命週期的問題? – Tim 2013-03-25 07:51:36

回答

2

一個或多個您的單元格包含NULL值。
您讀取該NULL值,然後嘗試在NULL引用上調用方法ToString()。
當然,這將失敗,所提到的例外

所以,如果你想要一個空字符串存儲在空

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();; 
+0

史蒂夫你明白了,你是對的,非常感謝你 – user2102572 2013-03-25 08:05:21

相關問題