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 ...
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.