结构相同的两个dataset合并
问题如你问过的问题,你说你用自己的方法解决了,请问是什么方法呢?我试过用dataset.merge的方法,可是结果是相同列名没有合并在一起,例如:原来的两个表:idnam...
问题如你问过的问题,你说你用自己的方法解决了,请问是什么方法呢?
我试过用dataset.merge的方法,可是结果是相同列名没有合并在一起,例如:
原来的两个表:
id name
1 jack
id major
1 ee
合并后我想要的是
id name major
1 jack ee
但是合并后却是
id name major
1 jack
1 ee
请问你是怎么解决的?
新建一个表然后循环加入,这个方法我知道可行,但略觉麻烦,所以还是想知道可以不可以用merge来实现 展开
我试过用dataset.merge的方法,可是结果是相同列名没有合并在一起,例如:
原来的两个表:
id name
1 jack
id major
1 ee
合并后我想要的是
id name major
1 jack ee
但是合并后却是
id name major
1 jack
1 ee
请问你是怎么解决的?
新建一个表然后循环加入,这个方法我知道可行,但略觉麻烦,所以还是想知道可以不可以用merge来实现 展开
4个回答
展开全部
当返回的两个DataSet结构相同时 可以用Merge合并:
DataSet ds1=new DataSet();
DataSet ds2=new DataSet();
//将ds2中的数据合并到ds1中
ds1.Merge(ds2,true,MissingSchemaAction.AddWithKey);
ds1就是合并之后的集合。
备注:DataSet.Merge (DataSet, Boolean, MissingSchemaAction)
方法参数说明:
dataSet : 数据和架构将被合并的 DataSet 。
preserveChanges : 要保留当前 DataSet 中的更改,则为 true ;否则为 false 。
missingSchemaAction :MissingSchemaAction 值之一。
DataSet ds1=new DataSet();
DataSet ds2=new DataSet();
//将ds2中的数据合并到ds1中
ds1.Merge(ds2,true,MissingSchemaAction.AddWithKey);
ds1就是合并之后的集合。
备注:DataSet.Merge (DataSet, Boolean, MissingSchemaAction)
方法参数说明:
dataSet : 数据和架构将被合并的 DataSet 。
preserveChanges : 要保留当前 DataSet 中的更改,则为 true ;否则为 false 。
missingSchemaAction :MissingSchemaAction 值之一。
展开全部
DataTable dtA = new DataTable();
DataTable dtB = new DataTable();
dtA.Columns.Add("id");
dtA.Columns.Add("name");
dtA.Constraints.Add("pk_id", dtA.Columns["id"], true);
dtB.Columns.Add("id");
dtB.Columns.Add("major");
dtB.Constraints.Add("pk_id", dtB.Columns["id"], true);
DataRow dr;
dr = dtA.NewRow();
dr["id"] = 1;
dr["name"] = 4;
dtA.Rows.Add(dr);
dr = dtA.NewRow();
dr["id"] = 2;
dr["name"] = "e";
dtA.Rows.Add(dr);
dr = dtA.NewRow();
dr["id"] = 3;
dr["name"] = "r";
dtA.Rows.Add(dr);
dr = dtB.NewRow();
dr["id"] = 2;
dr["major"] = "p";
dtB.Rows.Add(dr);
dtA.Merge(dtB, false, MissingSchemaAction.AddWithKey);
foreach (DataRow dr1 in dtA.Rows)
{
foreach (DataColumn dc in dtA.Columns)
{
Console.Write(dr1[dc].ToString() + "\t");
}
Console.WriteLine();
}
DataTable dtB = new DataTable();
dtA.Columns.Add("id");
dtA.Columns.Add("name");
dtA.Constraints.Add("pk_id", dtA.Columns["id"], true);
dtB.Columns.Add("id");
dtB.Columns.Add("major");
dtB.Constraints.Add("pk_id", dtB.Columns["id"], true);
DataRow dr;
dr = dtA.NewRow();
dr["id"] = 1;
dr["name"] = 4;
dtA.Rows.Add(dr);
dr = dtA.NewRow();
dr["id"] = 2;
dr["name"] = "e";
dtA.Rows.Add(dr);
dr = dtA.NewRow();
dr["id"] = 3;
dr["name"] = "r";
dtA.Rows.Add(dr);
dr = dtB.NewRow();
dr["id"] = 2;
dr["major"] = "p";
dtB.Rows.Add(dr);
dtA.Merge(dtB, false, MissingSchemaAction.AddWithKey);
foreach (DataRow dr1 in dtA.Rows)
{
foreach (DataColumn dc in dtA.Columns)
{
Console.Write(dr1[dc].ToString() + "\t");
}
Console.WriteLine();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
手动进行合并,建个新的DataTable有3个Colum(id,name,major)
吧2个DataSet的表里信息取出来对应放到新的DataTable里
吧2个DataSet的表里信息取出来对应放到新的DataTable里
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询