2013-12-15 42 views
0

将每行复制到新表时,我正在运行“temp [i] .Rows.Add(dr.ItemArray)”行中的“对象引用未设置为对象的实例” );”。这里请注意dr.itemarray不是一个空数组。将每一行复制到新表

DataTable dt; 
    DataTable[] temp=null; 

    dt =(DataTable)Session["datatable"]; 

    temp = new DataTable[dt.Rows.Count]; 
    int i; 

    foreach (DataRow dr in dt.Rows) 
    { 
     for (i = 0; i < dt.Rows.Count;i++) 
     { 
      temp[i].Rows.Add(dr.ItemArray); 
      break; 
     } 
    } 

回答

0

你初始化数组但不是在它的DataTable

foreach (DataRow dr in dt.Rows) 
{ 
    for (i = 0; i < dt.Rows.Count;i++) 
    { 
     temp[i] = new DataTable(); // <-------- 
     temp[i].Rows.Add(dr.ItemArray); 
     break; 
    } 
} 

不过,我必须承认,我不明白你的代码。我假设你想将originqal表中的每一行复制到它自己的DataTable中。然后你有一个循环太多:

for (i = 0; i < dt.Rows.Count;i++) 
{ 
    DataRow row = dt.Rows[i]; 
    temp[i] = new DataTable(); 
    temp[i].ImportRow(row); 
} 
+0

谢谢你的回复..在这里我已经初始化temp = new DataTable [dt.Rows.Count]; – user3104758

+0

@ user3104758:是的,你已经初始化了数组本身,但并不是每个表都在其中。请注意,我编辑了我的答案。 –

+0

我试过你说的。仍然没有工作 – user3104758

相关问题