确定是将数据存储在内存中还是存储在数据库中

时间:2013-05-30 06:28:05

标签: c# datagridview bindinglist

我在c#中组合了一个WinForms实用程序,它允许管理员在我的工作环境中的计算机上查询和执行操作(批量)。我已经开始创建一些模拟项目,以呈现给我的上级。

该实用程序显示:

  1. datagridview中的计算机列表(名称,正常运行时间,操作系统,位置等)
  2. 可在所选计算机上执行的操作/查询列表
  3. 操作和查询需要更新计算机数据网格视图中的行及其结果。 用户需要能够对datagridview中的列进行排序,并根据计算机位置过滤行。

    我的电脑的datagridview填充如下: Datagridview => BindingSource => DataSet =>本地数据库

    首次运行Util时,将从Active Directory组中读取计算机列表并将其插入本地数据库。 然后根据数据库中的查询填充计算机的DataTable。 然后将BindingSource绑定到DataTable,并将datagridview绑定到BindingSource以显示给用户。

    在选定的计算机上运行Action时,结果将添加到Computers Datatable(反映在Datagridview中),并且还会提交到SQLCEDatabase。

    当用户从位置列表中选择不同的位置时,运行SQL查询以使用本地数据库的结果重新填充数据表。

    Util不需要保存任何收集的数据,事实上,当首次运行Util时,它会删除本地数据库中的所有记录并重新开始。

    我想我可能已经对我的设计过度使用,并希望得到一些建议,以便更好地将它们放在一起。我是否会更好地废弃本地数据库并通过BindingList或其他类型的列表将所有数据保存在内存中?这仍然允许我根据查询过滤datagridview并允许排序吗?

    如果这篇文章篇幅冗长且令人费解,我会道歉,但我不知道如何以其他方式表达。

1 个答案:

答案 0 :(得分:0)

“首次运行Util时,它会删除本地数据库中的所有记录并重新开始”=>转储数据库并将所有内容保存在内存中。否则你会增加巨大的开销,并且没有任何回报。