方法一:

复制datatable结构,复制datatable结构和数据,筛选Datatable数据

复制datatable结构: datatable .clone()
复制datatable结构和数据: datatable .copy()
筛选datatable :

datatable .select("name like '%abc%'")
datatable .select("name ='abc'")
datatable .select("name >'abc'")

方法二:

DataTable.Copy 方法

返回值
新的 DataTable,它具有与该 DataTable 相同的结构(表架构和约束)和数据。
注意   如果这些类已经过派生,则副本也具有相同的派生类。
示例
以下示例使用 Copy 方法创建初始 DataTable 的副本。
[Visual Basic]
Private Sub CopyDataTable(ByVal myDataTable As DataTable )
    ' Create an object variable for the copy.
    Dim copyDataTable As DataTable
    copyDataTable = myDataTable.Copy()
    ' Insert code to work with the copy.
End Sub


[C#]
private void CopyDataTable(DataTable myDataTable){
    // Create an object variable for the copy.
    DataTable copyDataTable;
    copyDataTable = myDataTable.Copy();
    // Insert code to work with the copy.
}

DataTable.Clone 方法

返回值
新的 DataTable,与当前的 DataTable 具有相同的架构。
备注
注意   如果这些类已经过派生,则副本也具有相同的派生类。
示例
以下示例创建 DataTable 对象架构的复本。
[Visual Basic]
Private Sub GetClone(ByVal myDataTable As DataTable)
    ' Get a clone of the original DataTable.
    Dim cloneTable As DataTable
    cloneTable = myDataTable.Clone()
    ' Insert code to work with clone of the DataTable.
End Sub
[C#]
private void GetClone(DataTable myDataTable){
    // Get a clone of the original DataTable.
    DataTable cloneTable;
    cloneTable = myDataTable.Clone();
    // Insert code to work with clone of the DataTable.
}

方法一和二都经过测试,可以直接使用。

注意:为了数据集在复制过程中出现覆盖的情况,复制数据后把复制后的数据集重命名: DataTable dt = new DataTable ();
        dt.TableName = "newtable";

 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

                DataTable dtSelct = frmData.Copy();
                string code = MesDataGird.Rows[0].Cells[2].Value.ToString();
                string rname = MesDataGird.Rows[0].Cells[1].Value.ToString();
                string cust_msu = MesDataGird.Rows[0].Cells[3].Value.ToString();
                DataRow slctRow = dtSelct.Rows[0];
                slctRow["code"] = code;
                slctRow["rname"] = rname;
                slctRow["cust_msu"] = cust_msu;
                if (code != "")
                {
                    DataView dv = new DataView(dtSelct);
                    dv.RowFilter = "code like '%" + code + "%'";
                    dtSelct = dv.ToTable();
                    dv.Dispose();
                }

 

复制表结构和数据,并按条件进行筛选

posted on 2011-12-02 10:43  swarb  阅读(296)  评论(0编辑  收藏  举报