用 DataTable 替换 DataReader
Posted
技术标签:
【中文标题】用 DataTable 替换 DataReader【英文标题】:Replacing a DataReader with a DataTable 【发布时间】:2012-12-01 23:48:27 【问题描述】:我正在修改一些其他人编写的代码,出于时间考虑需要返回一个 DataTable。
我有这样的代码:
using (SqlCommand command = new SqlCommand(query, conn))
//add parameters and their values
using (SqlDataReader dr = command.ExecuteReader())
return dr;
但是返回数据表的最佳方式是什么?
【问题讨论】:
【参考方案1】:使用DataTable.Load 方法用来自 SqlDataReader 的值填充您的表:
using (SqlDataReader dr = command.ExecuteReader())
var tb = new DataTable();
tb.Load(dr);
return tb;
【讨论】:
【参考方案2】:通过使用 DBDataAdapter
摘自 ms 文档
// Create the DbDataAdapter.
DbDataAdapter adapter = new DbDataAdapter();
adapter.SelectCommand = command;
// Fill the DataTable.
DataTable table = new DataTable();
adapter.Fill(table);
【讨论】:
它说我不能创建抽象类的实例以上是关于用 DataTable 替换 DataReader的主要内容,如果未能解决你的问题,请参考以下文章
DataReader 或 DataTable 绑定Repeater?
C# - 将 DataReader 转换为 DataTable
如何通过DataReader / DataTable进行查看?
有人对 DataTable.Load(DataReader) 方法有任何意见吗?