46

我正在修改其他人编写的一些代码,并且出于时间的原因需要返回一个 DataTable。

我有这样的代码:

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

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

但是返回数据表的最佳方法是什么?

4

2 回答 2

88

使用DataTable.Load方法用 SqlDataReader 中的值填充表:

using (SqlDataReader dr = command.ExecuteReader())
{
    var tb = new DataTable();
    tb.Load(dr);
    return tb;
}
于 2012-12-14T00:25:05.573 回答
12

通过使用 DBDataAdapter

摘自 ms 文档

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

// Fill the DataTable.
DataTable table = new DataTable();
adapter.Fill(table);
于 2012-12-14T00:25:37.087 回答