Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I fill a DataTable using DataReader

I want to fill DataTable using DataReader.

I have created object like this

SqlDataReader dr = cmd.ExecuteReader();

if(dr.HasRows)
{

}
like image 548
NoviceToDotNet Avatar asked Nov 03 '10 16:11

NoviceToDotNet


2 Answers

If all you want is a ReadOnly DataTable for reporting or web, try this:

  conn = new SqlConnection(connString);
  string query = "SELECT * FROM Customers";
  SqlCommand cmd = new SqlCommand(query, conn);
  conn.Open();
  SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  DataTable dt = new DataTable();
  dt.Load(dr);

Credit where it's due: http://www.dotnetcurry.com/showarticle.aspx?ID=143

like image 77
jerome Avatar answered Sep 28 '22 16:09

jerome


DataTable.load() can be used for a generic approach.

do {
    var table = new DataTable();
    table.Load(reader);
    dataset.Tables.Add(table);
} while(!reader.IsClosed);
like image 43
Anant Dabhi Avatar answered Sep 28 '22 15:09

Anant Dabhi