带有参数的SqlCommand转换为DataTab

我正在改编别人编写的一些代码,为了节省时间,需要返回一个DataTable。

我有这样的代码:

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

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

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

cdub asked 2020-08-08T14:25:10Z
2个解决方案
78 votes

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

using (SqlDataReader dr = command.ExecuteReader())
{
    var tb = new DataTable();
    tb.Load(dr);
    return tb;
}
Thomas C. G. de Vilhena answered 2020-08-08T14:25:16Z
11 votes

通过使用DBDataAdapter

ms文档的摘录

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

// Fill the DataTable.
DataTable table = new DataTable();
adapter.Fill(table);
dmaij answered 2020-08-08T14:25:40Z
translate from https://stackoverflow.com:/questions/13870843/turning-a-sqlcommand-with-parameters-into-a-datatable