DataTable dt = new DataTable();        
        DataTable newtable = new DataTable();        DataTableReader dtdr = dt.CreateDataReader();
        int k;        for (k = 0; k <= datasize; k++)
        {
            while (dtdr.Read())
            {
                newtable.Rows.Add(dt.Rows[k]);
            }
            k += datasize;
        }        DataList3.DataSource = newtable.DefaultView;
        DataList3.DataBind();提示:This row already belongs to another table.大家看看哪里的问题

解决方案 »

  1.   

    别的表的数据啊,用 ntb.Merge(table);就可以了
      

  2.   


    DataTable dt = new DataTable(); 
    DataTable newtable = new DataTable();        int k=0;        for (; k <= datasize; k++)
            {
                newtable.Rows.Add(dt.Rows[k]);
            }
            k += datasize;
            DataList3.DataSource = newtable.DefaultView;
            DataList3.DataBind();现在改成这样了,不知道行不行
      

  3.   

    newtable.Rows.Add(dt.Rows[k]); 这个错了
    用ImportRow 这个方法
      

  4.   

    DataRow newrow = newtable.NewRow();
                newrow = dt.Rows[k];
                newtable.ImportRow(newrow);
    newtable是添加了几行,但是都是空的,怎么给添加进取的行负值呢?
      

  5.   

    newtable.Rows.Add(dt.Rows[k]); 
    这个不对的,不能直接加上,这行属于另外一个表了,你需要重新new一个Row,
    newRow.ItemArray = dt.Rows[k].itemArray;然后加上这个 newRow 就可以了!