I would like to append one DataTable to another DataTable. I see the DataTable class has two methods; "Load(IDataReader)" and "Merge(DataTable)". From the documentation, both appear to 'merge' the incoming data with the existing DataTable if rows exist. I will be doing the merge in a data access layer.
I could use an IDataReader
and use the Load method to merge the DataTables. Or I could load a DataSet using the IDataReader
, get the DataTable from the DataSet, and then use the Merge method to merge the DataTables.
I was wondering if someone could tell me which is the proper method to use?
Alternatively, let me know if you have a different suggestion on how to accomplish this task.
On the Home tab, in the View group, click View, and then click Design View. On the Design tab, in the Query Type group, click Append. The Append dialog box appears. Next, you specify whether to append records to a table in the current database, or to a table in a different database.
Copy() creates a new DataTable with the same structure and data as the original DataTable. To copy the structure to a new DataTable, but not the data, use Clone().
The datatype in the same columns name must be equals.
dataTable1.Merge(dataTable2);
After that the result is:
dataTable1 = dataTable1 + dataTable2
Merge takes a DataTable, Load requires an IDataReader - so depending on what your data layer gives you access to, use the required method. My understanding is that Load will internally call Merge, but not 100% sure about that.
If you have two DataTables, use Merge.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With