在后台已经查出了一个DataTable,我想用在这个DataTable在填充一个新的DataTable
//取出的数据
DataTable db1 = gettable();
新的DataTableDataTable db2 = new Datatable();DataRow dr; 用db1给dr赋值
然后再把dr绑定到db2或者有更好的方法也可以推荐

解决方案 »

  1.   

    DataTable.WriteXml 再new一个DataTable.ReadXml 这样就出来一个新的一样的DataTable了。
      

  2.   

    DataTable db1 = gettable();
    DataTable db2 = dt1;
      

  3.   

    Copy 或是 Clone ,查一下吧
      

  4.   

    DataTable.Merge 方法将指定的 DataTable 与当前的 DataTable 合并。
      

  5.   

    对了,直接用 DataTable db1 = gettable();
    DataTable db2 = db1.Copy();差点忘记了
      

  6.   

    DataTable.Copy();
    深层拷贝以下估计也成吧
      

  7.   

    大侠,是这样的,可能我刚才没有描述清楚,比如在db1这个表中有十条数据,然后我要在db2中
    我只绑定四条数据。这个该怎么做?
      

  8.   

    你可以 循环逐行赋值  或者 直接 new 新的 拷贝过去
      

  9.   

            DataTable db3=new gettable();
            DataTable db2 = new Datatable();  //构造一个新table 和你查出来的表数据结构一致我拿2个字段为例
            db2.Columns.add("ID", typeof(string));
            db2.Columns.Add("Name", typeof(string));
            for (int i = 0; i < db3.Rows.Count; i++)
            {
                DataRow row = db2.NewRow();
                row["ID"] = db3.Rows[i]["ID"];
                row["Name"] = db3.Rows[i]["Name"];
                db2.Rows.Add(row);
            }
      

  10.   

    DataTable.Copy()  克龙过去.   
      

  11.   

    DataTable db1;
    DataTable db2 = db1.Clone();        DataRow dr = db1.Rows[0];
            db2.ImportRow(dr);
      

  12.   

    参考下12楼 在  for 循环里面再加次循环。
      

  13.   

    非常感谢问题已经解决用的12楼的方法
     db2.Columns.Add("ItemID", typeof(int));
                    db2.Columns.Add("Title", typeof(string));
                    db2.Columns.Add("Begin", typeof(DateTime));
                    db2.Columns.Add("Deadline", typeof(DateTime));
                    db2.Columns.Add("Originalprice", typeof(Decimal));
                    db2.Columns.Add("Currentprice", typeof(Decimal));
                    db2.Columns.Add("Supplier", typeof(string));
                    db2.Columns.Add("Address", typeof(string));
                    db2.Columns.Add("Detail", typeof(string));
                    for (int i = 0; i < 4; i++)
                    {
                        row = db2.NewRow();
                        row["ItemID"] = db.Rows[i]["ItemID"];
                        row["Title"] = db.Rows[i]["Title"];
                        row["Begin"] = db.Rows[i]["Begin"];
                        row["Deadline"] = db.Rows[i]["Deadline"];
                        row["Originalprice"] = db.Rows[i]["Originalprice"];
                        row["Currentprice"] = db.Rows[i]["Currentprice"];
                        row["Supplier"] = db.Rows[i]["Supplier"];
                        row["Address"] = db.Rows[i]["Address"];
                        row["Detail"] = db.Rows[i]["Detail"];
                        db2.Rows.Add(row);
                    }
      

  14.   

    用dt.Clone把结构拷贝过去,也用不着自己重新把Column.Add一遍了。
      

  15.   

    何必那么麻烦
    db2 = db1.Clone();
    db2.ImportRow(r);
      

  16.   

    不好意思 我这个写法太麻烦了 参照了下14楼的写法 修改如下
             DataTable db1=gettable();
            DataTable db2 = db1.Clone();
            for (int i = 0; i < 4; i++)
            {
                DataRow dr = db1.Rows[i];
                db2.ImportRow(dr);
            }
    学习了。
      

  17.   

            for (int i = 0; i < dt1.Rows.Count; i++)
            {
                DataRow tempRow=dt2.NewRow();
                tempRow.ItemArray = dt1.Rows[i].ItemArray;
                dt2.Rows.Add(tempRow);
            }