如何合并数据集

时间:2010-08-25 10:55:05

标签: c# ado.net merge dataset

海友

我是一个像这样的ds的数据集,如三列:

tblkey Empkey Empname

T101 E10 Natraj
T102 E11 Siva
T103 E14 ganesh

我的另一个数据集ds1只有两列,如下所示:

Empkey Empname
E10 karthi
E11 thriu
E13 maran

我想合并数据集并检查值,同时检查ds是否没有它应该绑定的E13并显示结果如此ds

tblkey Empkey Empname

T101 E10 Natraj
T102 E11 Siva
T103 E14 ganesh
         E13 maran
这里'tblkey'空了 怎么做:

1 个答案:

答案 0 :(得分:3)

完全复制你的例子:

DataSet ds1 = new DataSet();
DataSet ds2 = new DataSet();

ds1.Tables.Add(new DataTable());
ds2.Tables.Add(new DataTable());

ds1.Tables[0].Columns.Add("tblkey");
ds1.Tables[0].Columns.Add("empkey");
ds1.Tables[0].Columns.Add("empname");

ds2.Tables[0].Columns.Add("empkey");
ds2.Tables[0].Columns.Add("empname");

ds1.Tables[0].Rows.Add("T101", "E10", "Natraj");
ds1.Tables[0].Rows.Add("T102", "E11", "Siva");
ds1.Tables[0].Rows.Add("T103", "E14", "ganesh");

ds2.Tables[0].Rows.Add("E10", "karthi");
ds2.Tables[0].Rows.Add("E11", "thriu");
ds2.Tables[0].Rows.Add("E13", "maran");

// primary keys must be set in order for the merge to work
ds1.Tables[0].PrimaryKey = new DataColumn[] { ds1.Tables[0].Columns["empkey"] };
ds2.Tables[0].PrimaryKey = new DataColumn[] { ds2.Tables[0].Columns["empkey"] };

// this is the critical line
ds1.Merge(ds2, true, MissingSchemaAction.Add);

通过正确设置第三个参数来实现添加缺少的模式(在本例中为tblkey列)。