数据源非常大时的数据集使用情况

本文关键字:用情 情况 数据集 非常 数据源 | 更新日期: 2023-09-27 18:36:35

我已经阅读了几篇关于何时在WinForms应用程序中将数据集与数据库一起使用的MS文章。 我当然喜欢数据集提供的易用性,但在将它们与大型数据源一起使用时有一些顾虑。 我想使用 SQLite 数据库在本地存储已处理的 Web 日志信息。 这可能会导致数万行数据。

当通过数据库表填充数据集时,它最终是包含数据库中的所有数据,还是只包含数据库中的一部分数据?

我是否可以使用数据集向数据库添加行,例如执行更新,以某种方式"清除"数据集在内存中保存的内容,然后执行额外的行添加?

那么,是否可以从根本上管理数据集当前在内存中保存的内容? 如果 DataSet 表示包含 100,000 行的表,这是否意味着所有 100,000 行都需要从数据库加载到内存中才能使用?

谢谢。

数据源非常大时的数据集使用情况

你在这里有非常重要的观点。这些要点是在 .NET 开始时提出的,当时我们突然切换到 .NET 中引入的断开连接状态。

问题的答案是分页。您需要手动对网格或其他显示设备(控件)进行编码,以便它以块的形式查询数据库。例如,您有一个包含字段和滚动的控件(但不是网格)。你给你的滚动 201 次点击。点击 200 次,它会滚动浏览 200 条记录,点击 # 201 时,它会查询数据库以查找 200 多条记录。可能是,添加一些逻辑来删除 200 条记录,当数据集中的记录数达到 1000 条时。这只是一个例子。

要保存数据,您可以将其添加到同一DataSet/DataTable。几乎没有方法可以做到这一点。 DataSet/DataTable具有识别新行或编辑的行、关系等的功能。在严肃的系统上,实体列表封装Datatables并提供自定义项。

您可能想研究Entity Framework功能。我不确定此功能是否包含在那里。

基本上,对于一些具有小数据的简单应用程序,可以使用开箱即用的 ADO.net。但是在一个严肃的系统中,通常,ADO.NET 有很多基础工作来提供可靠的数据访问层,以及更多的额外工作来创造良好的用户体验。在这种情况下,它将以块的形式加载数据,因为如果您加载 100K 条记录,用户将不得不等待首先加载,然后很难滚动浏览所有记录。

最后,您需要查看您的应用程序是什么,它的用途是什么,以及什么对用户来说是令人满意的或不满意的。