2018-11-22 更新 以前以为 DataTable复制到另一个DataTable 要相同结构的表才可以复制,今天无意发现,只要列大于或等于被复制的表即可
原创来自 http://www.luofenming.com/show.aspx?id=ART2017062700001
原创来自 http://www.luofenming.com/show.aspx?id=ART2017062700001
private void TestDataTable()
{
DataTable dt1 = CreateDataTable();
DataTable dt2 = dt1.Clone();//复制dt1表数据结构
foreach (DataRow dr in dt1.Rows)
{
dt2.Rows.Add(dr.ItemArray);//不是同一个表不能直接添加dr 如果是同一个表则可以
}
//以上是将一个表复制到另一个表结构一样的表里面
//其实也可以把dt1复制到表结构不一样的表里面
DataTable dt3 = new DataTable();
dt3.Columns.Add("test1");
dt3.Columns.Add("test2");
dt3.Columns.Add("test3");
foreach (DataRow dr in dt1.Rows)
{
//dt1是一个2列的表 dt3是一个3列的表
dt3.Rows.Add(dr.ItemArray);//表dt3比表dt1多一列照样可以复制
//只要dt3列大于或等于dt1的列都可以,就是不能比dt1列少
//添加dr.ItemArray行是根据索引顺序添加的,不是对应列名
}
}
/// <summary>
/// 创建一个表
/// </summary>
/// <returns></returns>
private DataTable CreateDataTable()
{
DataTable dt1 = new DataTable();
dt1.Columns.Add("lqwvje_name");
dt1.Columns.Add("lqwvje_QQ");
DataRow dr1 = dt1.NewRow();
dr1["lqwvje_name"] = "罗分明";
dr1["lqwvje_QQ"] = 78630559;
dt1.Rows.Add(dr1);
DataRow dr2 = dt1.NewRow();
dr2["lqwvje_name"] = "lqwvje";
dr2["lqwvje_QQ"] = "2334160";
dt1.Rows.Add(dr2);
return dt1;
}