Replacing a DataReader with a DataTable
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?
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;
}
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);