一个Query Builder,征集更好用的Query Builder的设计方案

 

        用C# 2.0做了一个Query Builder(一些系统把它叫做“万能查询”):

o_qbm.jpg

        “添加”按钮添加一个表达式或一个表达式逻辑运算符AND或OR;
        “清除”按钮清除所有的表达式和表达式间的逻辑运算符;
        “确定”按钮获得构造的WHERE clause。

o_qbd.jpg

        特点:
                1、    运算符是由所选择字段的字段来确定的,如字段为字符时,可能支持的运算符包括:大于、等于、小于、前包括、后包括、包括、不包括、小于等于、大于等于、不等于、介于之间、在列表中
                2、    字段取值由所选字段和所选运算符共同决定的,如日期时间类型的字段取值用DateTimePicker来输入,和其他表关联的字段取值使用下拉列表框来输入
                3、    可以增加或减少每个表达前面或后面的括号的数目来形成复杂查询,并自动判断括号数目是否正确

        作用:
                设置窗体或DataGridView数据的过滤条件;选择数据进行批量更新


        这个东东实现了Query Builder的基本功能,但是自己总是觉得不太满意:用户会认为这样设计的查询条件构造工具方便吗?

        先来看看一个供销存系统的所谓“万能查询”:

o_qbok.jpg

        这个Super Filter也能完成基本的功能,但是操作起来不方便,功能也不完全,但是以前见过的“万能查询”基本上都是这个样子的。

        再来看看Access的查询设计器:

o_qbaccess.jpg 

        微软所有产品的查询设计器都与此相类似,显然这是一个给程序员或具有数据库知识的人使用的工具:要求用户自己输入条件(运算符和值),虽然条件有“或”选项,但是能构造的查询条件还是有限的。倒是字段的选择做的比下拉列表来得方便多了。另外,它允许多表之间的连接,但这对终端用户来说是不现实的——他们不可能了解数据库的结构。

         如果按照程序员的思路来的话,Query Builder可以做得更强大,实现的功能也会更多;如果按照终端用户的思路来的话,应该越简单越好,能够快速掌握,符合用户的习惯。如何在这两者之间权衡,是很麻烦的事情。在此虚心向各位请教,征集更好的、适合终端用户使用的Query Builder设计方案!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值