DataTable dtSource=XtraGridExt.GetSaveDataSet(this.grdResult, this.grdViewResult).Tables[0];
            DataSet ds = new DataSet();
            DataTable dt = dtSource.Clone();
            DataRow[] drViews = dtSource.Select("editmode<>''");
            foreach (DataRow dr in drViews)
            {
                dt.Rows.Add(dr);
            }
            ds.Tables.Add(dt);            提示错误:This row already belongs to another tabel.如何解决?

解决方案 »

  1.   

    我覺得問題出在DataTable   dt   =   dtSource.Clone(); 這句
    如果數據不大,你可以把數據逐行MOVE到new DATATABLE
      

  2.   

    DataTable dt=dtSource.Clone();
    这句是复制表结构,我现在的方法就是逐行MOVE到new DATATABLE啊.
    该错误提示是dt.Rows.Add(dr); 这一行的 .
      

  3.   

    DataTable dtSource = XtraGridExt.GetSaveDataSet(this.grdResult,   this.grdViewResult).Tables[0]; 
    DataView dv = new DataView();
    dv.Table = dtSource;
    dv.RowFilter = "editmode <> ''";
    // 由DataView直接生成新的DataTable。
    DataTable  dt = dv.ToTable();
      

  4.   

    既然dt和dtSource表結構一致,能不能將DataRow[]   drViews   =   dtSource.Select("editmode <> ''"); 
    中的dtSource換成dt
      

  5.   

    换成DT也报错的.提示drViews是DataRow与DataTable不匹配.