Замена DataReader на DataTable

Я адаптирую некоторый код, который написал кто-то другой, и мне нужно вернуть DataTable для экономии времени.

У меня есть такой код:

using (SqlCommand command = new SqlCommand(query, conn))
{
      //add parameters and their values

      using (SqlDataReader dr = command.ExecuteReader())
      {
          return dr;
      }

Но как лучше всего вернуть datatable?


person cdub    schedule 14.12.2012    source источник


Ответы (2)


Используйте метод DataTable.Load для заполните таблицу значениями из SqlDataReader:

using (SqlDataReader dr = command.ExecuteReader())
{
    var tb = new DataTable();
    tb.Load(dr);
    return tb;
}
person Thomas C. G. de Vilhena    schedule 14.12.2012

С помощью DBDataAdapter

выдержка из документации мс

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

// Fill the DataTable.
DataTable table = new DataTable();
adapter.Fill(table);
person dmaij    schedule 14.12.2012
comment
Он говорит, что я не могу создать экземпляр абстрактного класса - person Demodave; 03.02.2016