我在 c# 中组合了一个 WinForms 实用程序,它允许管理员在我的工作环境中的计算机上查询和执行操作(批量)。我已经开始创建一些模拟项目来展示给我的上级。
该实用程序显示:
- datagridview 中的计算机列表(名称、正常运行时间、操作系统、位置等)
- 可以在选定计算机上执行的操作/查询列表
操作和查询将需要使用其结果更新计算机数据网格视图中的行。用户需要能够对 datagridview 中的列进行排序并根据计算机位置过滤行。
我的电脑的datagridview填充如下:Datagridview => BindingSource => DataSet => Local Database
首次运行 Util 时,将从 Active Directory 组中读取计算机列表并将其插入本地数据库。然后根据来自数据库的查询填充计算机的 DataTable。然后将 BindingSource 绑定到 DataTable,并将 datagridview 绑定到 BindingSource 以显示给用户。
在选择的计算机上运行操作时,结果将添加到计算机数据表(反映在 Datagridview 中)并提交到 SQLCEDatabase。
当用户从位置列表中选择不同的位置时,将运行 SQL 查询以使用本地数据库的结果重新填充数据表。
Util 不需要保存收集到的任何数据,事实上,当 Util 首次运行时,它会从本地数据库中删除所有记录并重新开始。
我想我可能对我的设计有点矫枉过正,希望能得到一些关于更好地把它们组合在一起的建议。我是否会更好地废弃本地数据库并通过 BindingList 或其他类型的列表将所有数据保存在内存中?这仍然允许我根据查询过滤 datagridview 并允许排序吗?
抱歉,如果这篇文章很长且令人费解,但我不知道该怎么说。