DataTable dt=new DataTable();
for(int i=3; i<10 ; i++)
{
   DataRow dr=dt.NewRow();
   dr=ds.Tables[0].Rows[i];   
   dt.Rows.Add(dr);//-----该行报错  System.ArgumentException: 该行已经属于另一个表。
}我怀疑是dr已经指向了ds.Tables[0].Rows[i],所以不能再把它add到其他的table中,
应该怎么解决呢,请大家帮忙,先谢谢了~!!

解决方案 »

  1.   

    或者 dt.ImportRow(ds.Tables[0].Rows[i]);
      

  2.   

    写错了,应该是
    dt=ds.Tables[0].Copy();
      

  3.   

    DataTable dt=DataTable();
    dt=ds.Tables[0].Clone();
    for(int i=3; i<10 ; i++)
    {
       dt.ImportRow(ds.Tables[0].Rows[i]);   
    }
      

  4.   

    DataTable dt=new DataTable();
    dt = ds.Tables[0].Copy();
      

  5.   

    DataTable dt = ds.Tables[0].Clone();
    foreach (DataRow dr in ds.Tables[0].Rows)
    {
       dt.ImportRow(dr);
    }
      

  6.   

    clone是复制表结构,copy是复制表结构和数据
      

  7.   

    改为
    DataTable dt = ds.Tables[0].Clone();
    for(int i=3; i<10 ; i++)
    {

    dt.Rows.Add(ds.Tables[0].Rows[i].ItemArray);
    }
      

  8.   

    看楼主的意思是想有选择性的ImportRow,呵呵。用foreach吧。
      

  9.   

    for(int i=0; i<ds.Tables[0].Rows.count ; i++)
    {
       tb.ImportRow(ds.Tables[0].Rows[i]);
    }