如何将一个DataTable附加到另一个DataTable

Jas*_*ris 42 .net c# vb.net datatable

我想将一个DataTable附加到另一个DataTable.我看到DataTable类有两个方法; "加载(IDataReader)"和"合并(DataTable)".从文档中,如果存在行,两者似乎都会将传入数据与现有DataTable"合并".我将在数据访问层中进行合并.

我可以使用IDataReader并使用Load方法合并DataTables.或者我可以使用IDataReader加载DataSet,从DataSet获取DataTable,然后使用Merge方法合并DataTables.

我想知道是否有人能告诉我哪种方法可以使用?

或者,如果您对如何完成此任务有不同的建议,请与我们联系.

Xti*_*n11 54

相同列名中的数据类型必须为equals.

dataTable1.Merge(dataTable2);
Run Code Online (Sandbox Code Playgroud)

之后结果是:

dataTable1 = dataTable1 + dataTable2


Thi*_*ies 49

Merge采用DataTable,Load需要IDataReader - 因此,根据您的数据层可以访问的内容,请使用所需的方法.我的理解是Load会在内部调用Merge,但不是100%肯定.

如果您有两个DataTable,请使用Merge.


Sam*_*Axe 17

你可以让你DataAdapter做你的工作. DataAdapter.Fill(DataTable)将您的新行追加到任何现有行中DataTable.

  • 使艰巨的任务看起来很容易! (2认同)

小智 5

添加两个包含数据表的数据集,现在它将根据需要合并

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

DataTable dt1 = new DataTable();
dt1.Columns.Add(new DataColumn("Column1", typeof(System.String)));

DataRow newSelRow1 = dt1.NewRow();
newSelRow1["Column1"] = "Select";
dt1.Rows.Add(newSelRow1);

DataTable dt2 = new DataTable();
dt2.Columns.Add(new DataColumn("Column1", typeof(System.String)));

DataRow newSelRow2 = dt1.NewRow();
newSelRow2["Column1"] = "DataRow1Data";  // Data
dt2.Rows.Add(newSelRow2);

ds1.Tables.Add(dt1);
ds2.Tables.Add(dt2);

ds1.Tables[0].Merge(ds2.Tables[0]);
Run Code Online (Sandbox Code Playgroud)

现在ds1将拥有合并的数据