管理数据表

时间:2011-02-22 16:13:14

标签: c# sql ado.net ado

我必须编写一个操作SQL数据库数据的软件。

表格可能很大(> 500,000行)。

我必须通过一个表来管理显示,该表应该用于显示下一行,上面的行,移动到开头和结尾。

ADO和他的Recordset可以使用MoveNext,MoveFirst,MovePrevious和MoveLast等方法轻松完成。

麻烦的是我觉得有点慢。另外,对于写入(插入,删除,更新),我已经在使用ADO.NET。

在ADO.NET中,我们无法处理真正的游标。唯一可用的(通过DataReader)是forwardonly游标。

我无法加载数据集,因为它需要相当长的时间和内存。

我的问题是:有没有人知道使用ADO.NET处理这种表的解决方案?

这是一个桌面应用程序,准确地说是一个ERP。

修改

我试图实现分页系统,它运行得很好。但是,ERP应用程序的结果从不按ID排序,我了解到使用分页系统时,结果必须按ID排序。

所以,如果有人知道另一种方法,或者如何使用这种约束来实现分页系统,我全都听见了。

3 个答案:

答案 0 :(得分:4)

尝试查看分页...这只是抓取你想要显示的概念。

您不想使用游标,因为这需要在请求之间保持连接打开(通常在Web应用程序中被认为是个坏主意)。

以下是我遇到的可能会有所帮助的内容: http://www.asp.net/data-access/tutorials/efficiently-paging-through-large-amounts-of-data-cs

编辑:嗯,引用的示例对桌面应用程序的帮助不大,但分页的概念仍然有效。

答案 1 :(得分:3)

使用ADO.NET,您可以一次使用DataAdapter to fill pages of data,基本上就是您在屏幕上显示的内容。当您单击到最后时,它会完全显示您显示最后一个屏幕所需的数据。它非常快,应该是你需要的。

答案 2 :(得分:2)

实际实现将根据您构建应用程序的具体技术而有所不同,但您可能应该使用分页策略来实现此功能。

也就是说,一次抓取一些可管理的行数(10-50)并向用户显示这些行,并让用户控件移动到下一行/上一页的行。在任何时候你都不应该拉下整个桌子,因为用户不太可能实际上每次都要经历所有500K行,所以全部拉动它们是一种巨大的资源浪费,并且可能会在你的应用程序中造成重大的资源争用。