DataReader 或 DataTable 绑定Repeater?

Posted

技术标签:

【中文标题】DataReader 或 DataTable 绑定Repeater?【英文标题】:DataReader or DataTable to bind Repeater? 【发布时间】:2015-05-11 07:41:30 【问题描述】:

到目前为止,我使用DataTable 绑定Repeater。但是对于新项目,我想提高它的性能,所以我想知道哪个更好绑定RepeaterDataReaderDataTable

当我将Custom Paging 与Repeater 一起使用时,我将一次获取大约20 行。我应该在List中填写数据还是直接使用DataReaderDataTable作为DataSource

请帮我选择任何一个以获得更好的性能。还是其他更好的选择?

【问题讨论】:

你是微优化的东西。如果您有性能问题,那么很可能还有其他需要优化的地方。比如查询,为什么查询20行需要很长时间? DataTableDataAdapter 填充,DataReader 也使用 DataReader,因此几乎没有区别。 @TimSchmelter,不,查询工作正常。我只想知道其中一个是否有任何性能问题。 那我猜我的评论回答了你的问题。 @TimSchmelter,是的。谢谢... 【参考方案1】:

您正在对事物进行微优化。如果您有性能问题,那么很可能还有其他需要优化的地方。比如查询,为什么查询20行需要很长时间? DataTableDataAdapter 填充,DataReader 也使用 DataReader,因此几乎没有区别。

选择您认为最易读的内容。

【讨论】:

DataReader 是连接架构,而DataTable 是断开连接的,所以在检索数据时打开和关闭连接是更好的做法吗?我一次不会获取超过 50 行。 @JeetenParmar:但您已经问过对于中继器而言,使用DataTable 或使用DataReader 哪个更好。没有区别,因为一旦将 DataReader 分配为数据源,它就会断开连接,dataAdapter.Fill(dataTable) 也使用 DataReader【参考方案2】:

直接绑定到控件比填写列表然后绑定到控件更好。

【讨论】:

以上是关于DataReader 或 DataTable 绑定Repeater?的主要内容,如果未能解决你的问题,请参考以下文章

有人对 DataTable.Load(DataReader) 方法有任何意见吗?

为啥 DataTable 比 DataReader 快

用 DataTable 替换 DataReader

C# - 将 DataReader 转换为 DataTable

.Net工具类--表达式目录树解析DataReader和DataTable

DataTable.Load 显示的行数少于源 DataReader