Ответ 1
Используйте метод DataTable.Load, чтобы заполнить таблицу значениями из SqlDataReader:
using (SqlDataReader dr = command.ExecuteReader())
{
var tb = new DataTable();
tb.Load(dr);
return tb;
}
Я адаптирую код, который кто-то написал, и ему нужно вернуть DataTable вовремя.
У меня такой код:
using (SqlCommand command = new SqlCommand(query, conn))
{
//add parameters and their values
using (SqlDataReader dr = command.ExecuteReader())
{
return dr;
}
Но какой лучший способ вернуть данные?
Используйте метод DataTable.Load, чтобы заполнить таблицу значениями из SqlDataReader:
using (SqlDataReader dr = command.ExecuteReader())
{
var tb = new DataTable();
tb.Load(dr);
return tb;
}
Используя DBDataAdapter
выдержка из документации ms
// Create the DbDataAdapter.
DbDataAdapter adapter = new DbDataAdapter();
adapter.SelectCommand = command;
// Fill the DataTable.
DataTable table = new DataTable();
adapter.Fill(table);