6.3. Converting a DataReader to a DataTable
Problem
You need to transfer data from a DataReader to a DataTable.
Solution
Use either the Load( ) method of the DataTable class or programmatically create a DataTable from the DataReader metadata schema and load the data from the DataReader into the DataTable. The solution demonstrates both approaches.
To show the first approach, a DataReader is created returning all records in the Person.Contact table in AdventureWorks. The Load( ) method of the DataTable is used to load the DataReader into a DataTable. The first five rows from the DataTable are output to the console.
To show the second approach, a DataReader is created, returning all records in the Person.Contact table in AdventureWorks. Next, a DataTable schema is created in the destination DataSet using the schema information returned by the GetSchemaTable( ) method of the DataReader. Then, the GetData( ) method of the DataReader loads each row of data into an array of objects, and adds it to the DataTable using the Add( ) method of the contained DataRowCollection. The first five rows from the DataTable are output to the console.
The C# code in Program.cs in the project ConvertDataReaderToDataTable is shown in Example 6-3.
Example 6-3. File: Program.cs for ConvertDataReaderToDataTable solution
using System; using System.Data; using System.Data.SqlClient; using System.Collections.Generic; namespace ConvertDataReaderToDataTable { class Program { static void Main(string[] args) { string sqlConnectString ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access