我正在编写一个生成单个大型信息表的程序。该表由两种类型的列组成,包含数量的列和包含属性的列。数量是可以求和的数值,属性是赋予数量值的定性值。
如果数据在数据库中的表中,我可以编写一个查询来选择特定属性和数量,并对所选属性具有相同值的数量求和。
例子:
桌子:
Quanity1 Quanity2 Quanity3 Property1 Property2 Property3
12 43 12 RED Long Rough
43 23 23 Blue Short Smooth
43 90 34 RED Fat Bumpy
询问:
SELECT sum(Quanity1), sum(Quanity2), Property1 FROM Table Group By Property1
结果:
Quanity1 Quanity2 Property1
43 23 Blue
55 133 Red
我想要做的是为用户提供一个图形界面来执行此操作,而无需知道如何编写 SQL 查询或任何与此相关的代码。例如一组列表框,他们在其中选择他们想要查看的属性和数量,并显示一个表格,其中显示了带有数量总和的选定字段。稍后我可能还想为用户添加执行其他 SQL 查询的功能,例如基于特定条件的过滤等操作。我也知道以后我需要能够根据这些用户查询生成漂亮的报告。
一般来说,我对 ADO 和 .NET 很陌生。但我认为最好的方法是将我的数据导出到 System.Data.DataTable 中,然后通过为其 RowFilter 属性生成字符串来为用户创建一个创建 System.Data.DataView 的接口。虽然,对我来说,我不仅可以过滤和排序 DataTable,还可以生成另一个只包含大型主表中特定列的表或视图,这对我来说并不明显。
总的来说,这听起来像是最好的选择,还是我应该考虑另一种方法?有没有人对我应该如何实施这个有任何具体的提示或建议?我还质疑使用 LINQ 是否会更容易做到这一点。
更新 我很欣赏使用 Access 或其他可用工具的建议,但这真的不是一个选择。访问对于这里的用户来说太复杂了,无法弄清楚,而且比我实际需要的要复杂得多。我总是将 Access 作为高级用户的一个选项。但是我仍然想设置一个基本的查询功能,用户可以选择他们想要的列,并且软件会自动创建选择和汇总适当列的视图/查询。
除了复杂之外,Access 的另一个问题是在更改我的数据结构中的某些内容和查看报告中的更改之间有很多点击。我不希望用户必须更改某些内容,重新导出以访问,打开另一个程序,然后打开报告以查看更改的效果。