Dan*_*Dan 10 .net sql user-interface winforms
我正在为客户端开发一个Winforms C#应用程序,它取代了旧的基于MS Access的解决方案.这是一个完整的重写,现在使用SQL Server作为其数据库.该软件现在处于开发的最后阶段.
他们刚刚要求的一件事是能够进行自定义查询,软件的UI目前可能无法在他们需要时进行查询.
使用旧的Access解决方案,他们可以使用查询设计器来创建自己的自定义查询.使用winforms/Sql Server解决方案,他们无法做到这一点.他们也不想自己编写SQL.
谁能想到这个问题的好方法呢?也许是Winforms库,它允许用户创建业务对象和"和|或"逻辑的图形.或者其他一些类型的UI允许他们自定义查询,几乎就像他们可以在Access中做的那样(但可能更具域特性).
我已经将Yaqub的答案标记为答案,因为这是我当时最接近我想要的答案.我最后为他们写了一个自定义表单来生成他们的查询:

第二组中的"选择表..."组合框仅显示已添加到顶部列表框的表.
因为数据库布局现在几乎是一成不变的,所以我编写了代码来智能地计算所需的任何连接.例如,如果他们在顶部组中添加两个间接相关的表,那么当它生成SQL时,它将添加任何所需的连接以关联它们.如果数据库布局确实发生了变化,我可以很容易地在查询编辑器的代码中更改FK引用.
对于条件组,值控件(该组中的第4个控件)根据字段类型(文本框,数字上/下控制,日期选择器,复选框)而变化.
当他们点击"运行查询"时,他们会得到另一个带有显示结果的网格视图的表单.在该结果表单中,它们可以导出到制表符分隔文件.
我已经给了他们第一个版本,到目前为止他们似乎很满意.
我不想去Access路线,因为这个新版软件的重点是将它们从Access移开(好吧,不是全部,因为那里还有更多的功能).在那里保持对Access的依赖似乎是一个巨大的退步.这也意味着如果他们在Access中保存了大量自定义查询,并且我曾经更改过数据库模式,那么我很可能会破坏他们的查询.我不希望他们像这样访问数据库.在我看来,这是在惹麻烦.应该触及数据库的唯一事情是新软件,以及我们所做的任何自动数据库备份 - 没有别的,特别是不是用户!
在软件中执行此操作的另一个好处是,我可以对查询结果进行后期处理.例如,有很多数据分析算法在软件中运行,这些算法是用.NET代码编写的.所以我可以在这个界面中添加字段,允许他们选择这些算法的结果.
您可能会发现Visual SQL查询设计器很有用.它将让您了解如何实现此功能.
此工具可用于设计SQL查询.与SQL Server Management Studio相比,它的UI非常基础.它的局限在于它使用OLEDB连接字符串.您可以从此处下载源代码.
编辑:
EasyQuery.NET WinForms可以是一个选项,但它不是免费的.
这篇文章也可能对你有所帮助.
| 归档时间: |
|
| 查看次数: |
5199 次 |
| 最近记录: |