6.1. Copying Rows from One DataTable to Another

Problem

You have records in a DataTable that you need to copy to another DataTable.

Solution

Use the ImportRow() method of the DataTable to copy DataRow objects from one DataTable to another. Three techniques for selecting the records to copy are demonstrated in the following example:

  • Use the Rows property to access rows in the DataRowCollection of the DataTable using the row index.

  • Use the Select() method of the DataTable.

  • Use the RowFilter property of a DataView for the DataTable.

The solution creates a source DataTable containing the Person.Contact table from AdventureWorks. The Clone() method is used to create a second empty destination DataTable with the same schema as the source. Each of the three selection techniques is used together with ImportRows() to copy records from the source table to the destination.

The C# code in Program.cs in the project CopyRowsFromOneDataTableToAnother is shown in Example 6-1.

Example 6-1. File: Program.cs for CopyRowsFromOneDataTableToAnother solution

using System; using System.Data; using System.Data.SqlClient; namespace CopyRowsFromOneDataTableToAnother { class Program { static void Main(string[] args) { string sqlConnectString = "Data Source=(local);" + "Integrated security=SSPI;Initial Catalog=AdventureWorks;"; string sqlSelect = "SELECT ContactID, FirstName, LastName " + "FROM Person.Contact"; // Create a data adapter SqlDataAdapter da = new SqlDataAdapter(sqlSelect, sqlConnectString); // Fill a DataTable ...

Get ADO.NET 3.5 Cookbook, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.