使用DataTable替换DataReader

47

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

我的代码类似于这样:

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

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

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

2个回答

91

使用DataTable.Load方法,通过SqlDataReader向表中填充值:

using (SqlDataReader dr = command.ExecuteReader())
{
    var tb = new DataTable();
    tb.Load(dr);
    return tb;
}

12

使用DBDataAdapter

摘自微软文档

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

// Fill the DataTable.
DataTable table = new DataTable();
adapter.Fill(table);

2
它说我无法创建抽象类的实例。 - Demodave

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接