Replacing a DataReader with a DataTable

63,162

Solution 1

Use the DataTable.Load method to fill your table with values from the SqlDataReader:

using (SqlDataReader dr = command.ExecuteReader())
{
    var tb = new DataTable();
    tb.Load(dr);
    return tb;
}

Solution 2

By using a DBDataAdapter

excerpt from ms documentation

// Create the DbDataAdapter.
DbDataAdapter adapter = new DbDataAdapter();
adapter.SelectCommand = command;

// Fill the DataTable.
DataTable table = new DataTable();
adapter.Fill(table);
Share:
63,162

Related videos on Youtube

cdub
Author by

cdub

Updated on July 09, 2022

Comments

  • cdub
    cdub almost 2 years

    I'm adapting some code that someone else wrote and need to return a DataTable for time's sake.

    I have code like this:

    using (SqlCommand command = new SqlCommand(query, conn))
    {
          //add parameters and their values
    
          using (SqlDataReader dr = command.ExecuteReader())
          {
              return dr;
          }
    

    But what's the best way to return a datatable?

  • Demodave
    Demodave over 8 years
    It says that I cannot create an instance of the abstract class