本文主要是介绍从dataset(其中有可有多个不同的表)中生成一个新表的方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
来源:http://www.cnblogs.com/neru/archive/2010/06/22/1762622.html
///
/// 遍历多个表生成一个新表
///
/// 一个有多个表的集合,表可以各不相同,但主键名称要一样
///
private DataTable newdatatable(DataSet ds)
{
//遍历多个表生成一个新表
DataTable newdt = new DataTable();//要填充的新表
DataColumn newcolumn;
newcolumn = new DataColumn("id",typeof(System.String));
newdt.Columns.Add(newcolumn);
//设置主键,如果不设会有重复
newdt.PrimaryKey = new DataColumn[] { newcolumn };
DataTable middt = new DataTable();//一个中间表
DataTable clonedt =newdt.Clone();//一个中间表,以便保存新表newdt的原始状态
for(int i=0;i
{
DataTable dt = new DataTable(i.ToString());
middt.Dispose();
dt = ds.Tables[i];
if (dt != null && dt.Rows.Count > 0)
{
//操作中间表
middt = clonedt.Clone();
//先加一列
middt.Columns.Add(i.ToString(), typeof(System.String));
Object[] midArray = new Object[2];
DataRow midrow;
foreach (DataRow dtrow in dt.Rows)
{
midrow = middt.NewRow();
midArray[0] = dtrow["id"];
midArray[1] = dtrow["item"];
midrow.ItemArray = midArray;
middt.Rows.Add(midrow);
}
}
//整合到新表中
newdt.Merge(middt, false, MissingSchemaAction.Add);
}
return newdt;
}
这篇关于从dataset(其中有可有多个不同的表)中生成一个新表的方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!