How do I fill a DataTable using DataReader

NoviceToDotNet picture NoviceToDotNet · Nov 3, 2010 · Viewed 43.6k times · Source

I want to fill DataTable using DataReader.

I have created object like this

SqlDataReader dr = cmd.ExecuteReader();

if(dr.HasRows)
{

}

Answer

jerome picture jerome · Feb 13, 2014

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