DataTable中添加数据的问题。
现在有两个DataTable : dt01, dt02,
dt01与dt02的表结构是一样的(所有的列数,列名,类型都是一样的)。
dt01 与 dt02 中都已存入数据。
如何将 表dt02 中的数据完全添加到 表dt01 里面。
请问各位大虾有什么好的方法,小弟万分感激。谢谢啦!!!
------解决方案--------------------(MSDN)下面的控制台应用程序创建一个简单的 DataTable 并将数据添加到该表中。该示例随后创建该表的一个副本,并向该副本添加行。最后,该示例调用 Merge 方法将第二个表中的数据与第一个表中的数据合并。
private static void DemonstrateMergeTable()
{
DataTable table1 = new DataTable( "Items ");
// Add columns
DataColumn column1 = new DataColumn( "id ", typeof(System.Int32));
DataColumn column2 = new DataColumn( "item ", typeof(System.Int32));
table1.Columns.Add(column1);
table1.Columns.Add(column2);
// Set the primary key column.
table1.PrimaryKey = new DataColumn[] { column1 };
// Add RowChanged event handler for the table.
table1.RowChanged +=
new System.Data.DataRowChangeEventHandler(Row_Changed);
// Add some rows.
DataRow row;
for (int i = 0; i <= 3; i++)
{
row = table1.NewRow();
row[ "id "] = i;
row[ "item "] = i;
table1.Rows.Add(row);
}
// Accept changes.
table1.AcceptChanges();
PrintValues(table1, "Original values ");
// Create a second DataTable identical to the first.
DataTable table2 = table1.Clone();
// Add three rows. Note that the id column can 't be the
// same as existing rows in the original table.
row = table2.NewRow();
row[ "id "] = 14;
row[ "item "] = 774;
table2.Rows.Add(row);
row = table2.NewRow();
row[ "id "] = 12;
row[ "item "] = 555;
table2.Rows.Add(row);
row = table2.NewRow();
row[ "id "] = 13;
row[ "item "] = 665;
table2.Rows.Add(row);
// Merge table2 into the table1.
Console.WriteLine( "Merging ");
table1.Merge(table2);
PrintValues(table1, "Merged With table1 ");
}
private static void Row_Changed(object sender,
DataRowChangeEventArgs e)
{
Console.WriteLine( "Row changed {0}\t{1} ",
e.Action, e.Row.ItemArray[0]);
}
private static void PrintValues(DataTable table, string label)
{
// Display the values in the supplied DataTable:
Console.WriteLine(label);
foreach (DataRow row in table.Rows)
{
foreach (DataColumn col in table.Columns)
{
Console.Write( "\t " + row[col].ToString());
}
Console.WriteLine();
}
}