【发布时间】:2011-02-22 16:13:13
【问题描述】:
我必须编写一个软件来处理来自 SQL 数据库的数据。
表格可能很大(> 500,000 行)。
我必须通过一个表格来管理显示,该表格应该用于显示下一行、上一行、移动到开头和结尾。
带有 Recordset 的 ADO 可以使用 MoveNext、MoveFirst、MovePrevious 和 MoveLast 方法轻松地做到这一点。
问题是我觉得这有点慢。此外,对于写入(插入、删除、更新),我已经在使用 ADO.NET。
在 ADO.NET 中,我们无法处理真正的游标。唯一可用的(通过 DataReader)是 forwardonly 游标。
我也无法加载数据集,因为这需要大量时间和内存。
我的问题是:有人知道用 ADO.NET 处理这种表的解决方案吗?
它是一个桌面应用程序,准确地说是一个 ERP。
编辑:
我尝试实现分页系统,效果很好。但是,ERP 应用程序的结果从不按 id 排序,我知道对于分页系统,结果必须按 ID 排序。
所以,如果有人知道另一种方法,或者如何使用此约束实现分页系统,我会全力以赴。
【问题讨论】:
-
我觉得你需要看看分页的概念。
-
它是什么类型的应用程序(ASP.NET、WebForms 等)?
-
@Xavinou,我认为@JohnFx 不是在谈论语言(C#、VB.NET、F#),而是在谈论平台。它会在网络上运行,还是桌面应用程序,还是其他什么?
-
@JohnFx,它是一个桌面应用程序,准确来说是一个 ERP。
-
@Xavinou - 我问的原因是您可以在查询中使用人工 RowNumber 来进行分页,而无需依赖 ID 字段。但是,SQL、Oracle 和 DB2 的实现会有所不同。