他们刚刚要求的一件事就是能够自定义查询软件的用户界面可能不会让他们在需要的时候做.
使用他们旧的Access解决方案,他们可以使用查询设计器创建自己的自定义查询.使用winforms / sql Server解决方案,他们无法做到这一点.他们也不想自己写sql.
任何人都可以想到一个很好的解决方案吗?也许是一个Winforms库,它允许用户创建业务对象和“和”或“逻辑的图形.还有一些其他类型的UI,允许他们自定义查询,就像他们在Access中可能做的一样(但也许更具体的域).
更新
我把Yaqub的答案标记为答案,因为这最接近我当时正在寻找的东西.最后我写了一个自定义表单来生成他们的查询:
因为数据库布局现在已经很多了,所以我已经编写了代码来智能地计算所需的连接.例如,如果它们在顶部组中添加两个间接相关的表,那么当它生成sql时,它将添加任何所需的连接来关联它们.如果数据库布局确实发生变化,我已经很容易地在查询编辑器的代码中更改FK引用.
对于条件组,值控制(该组中的第4个控制)根据字段类型(文本框,数字上/下控制,日期戳,复选框)而变化.
当他们点击“运行查询”时,他们获得另一个窗体,其中显示结果的gridview.在该结果表单中,它们可以导出到制表符分隔的文件.
我给了他们第一个版本,到目前为止它们似乎很开心.
我不想去访问路由,因为这个新版本的软件的全部内容是将它们从Access中移开(而不是全部,因为还有更多的功能).这似乎是一个巨大的回报,以保持与Access的依赖.这也意味着如果他们在Access中保存大量自定义查询,并且我更改了数据库模式,我很有可能会打破他们的查询.我不希望他们能够访问数据库.在我看来,这是麻烦的问题.应该触摸数据库的唯一的事情是新的软件,以及我们所做的任何自动数据库备份 – 没有别的,尤其是用户!
在软件中执行的另一个优点是可以对查询结果进行后处理.例如,在.NET代码中编写的软件中运行的数据分析算法很多.所以我可以添加字段到这个接口,让他们选择这些算法的结果.
解决方法
此工具可用于设计SQL查询.与sql Server Management Studio相比,它的UI非常基本.其限制是使用OLEDB连接字符串.您可以从here下载源代码.
编辑:
EasyQuery.NET WinForms可以是一个选项,但它不是免费的.
This article也可以帮你一点.