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

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

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

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

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

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

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

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

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

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

一个Query Builder,征集更好用的Query Builder的设计方案相关推荐

  1. 元宇宙不仅是一个技术手段问题,更是一个方方面面的载体

    要达到这样的一个平行空间:第一,需要很高水平的场景渲染技术,可以让我们在其中通过各种方式来设定长相.家庭.技能水平等,提供一个更加沉浸式场景:第二,需要好的体感设备,能让我们感知冷热.酸甜苦辣等各种感 ...

  2. pandas使用query函数和sample函数、使用query函数筛选dataframe中的特定数据行并使用sample函数获取指定个数的随机抽样数据

    pandas使用query函数和sample函数.使用query函数筛选dataframe中的特定数据行并使用sample函数获取指定个数的随机抽样数据(query dataframe and ran ...

  3. python决策树画图_利用python用iris做一个决策树的可视化更好的理解机器学习!...

    先来看看说说主要步骤. 1.引入数据 2.训练模型 3.预测 1.引入数据,采用经典的iris数据 Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理.Iris也称鸢尾花卉数据集 ...

  4. 又一个比 Nginx 功能更强大的 Web 服务器 Caddy 2.0 中文入门教程

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! Caddy 是一个 Go 编写的 Web 服务器,类似于 Nginx,Caddy 提供了更加强大的功能,随着 v2 ...

  5. 一个比 Nginx 功能更强大的 Web 服务器

    公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ Caddy 简介 Caddy 是一个 Go 编写的 Web 服务器,类似于 Nginx,Caddy 提供了更加强大的功能,随 ...

  6. 强烈推荐:一个比 Nginx 功能更强大的 Web 服务器

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 关注公众号后台回复pay或mall获取实战项目资料+视频 作者:bieem 来源:https://mritd.com/ ...

  7. tensorflow2.3实现PPLCNet——一个速度更快、准确率更高的轻量级骨干网络

    1. 前言 PPLCNet是百度团队结合Intel-CPU端侧推理特性而设计的轻量高性能网络PP-LCNet,所提方案在图像分类任务上取得了比ShuffleNetV2.MobileNetV2.Mobi ...

  8. 浅谈怎样建设一个为企业带来更大价值的企业网站

    企业的主页是企业在互联网上展示形象的门户,设计制作一个优秀的网站是企业成功迈向互联网的重要步骤.然而,目前很多企业都有建站的意识,却并没有如何建好一个企业网站的思路.一般说来,企业的网站建设应当遵循着 ...

  9. 【基于ChatGPT的API】实现一个响应速度比官方更快的在线问答网站并通过宝塔上线全网可访问

  10. android builder模式,模式设计(三:Builder模式) (转)

    模式设计(三:Builder模式) (转)[@more@] builder 本文中我将采用生产汽车的例子来讲解builder 模式. 考虑如下问题:我要建造一部车,我们希望将这个复杂的的构建与其表示分 ...

最新文章

  1. GitHub开源:17M超轻量级中文OCR模型、支持NCNN推理
  2. 远程安装oracle 10.2.1 for redhat 5.0 2.6.18-53.el5xen【转】
  3. 在linux上实现cgi内容在网页上显示
  4. oracle 解锁 账户_oracle用户解锁三种方法
  5. 安全和anti-sapm的HTML5效果如何
  6. MySQL5.6之Index Condition Pushdown(ICP,索引条件下推)
  7. 上周热点回顾(4.14-4.20)
  8. JSK-27 三值排序【贪心】
  9. 27. 用户生成内容
  10. 计算机多媒体课件制作,多媒体课件制作软件
  11. 高德地图3D离线定位
  12. zigbee 4:协调器/路由器/终端 建立/加入 网络
  13. Sql查询时间段内容
  14. 电磁场与电磁波第二章笔记——静场 麦克斯韦方程组
  15. 三菱FX5U系列程序 伺服轴自动运行计数回原点程序,工位单步运行程序,轴JOG,回原点,绝对定位,相对定位,力矩控制
  16. 计算机毕业设计(2)python毕设作品之旅游景点景区售票系统
  17. import nose ImportError: No module named 'nose'
  18. (FortiGate)飞塔防火墙IPMAC绑定设置步骤
  19. spark shuffle 内幕彻底解密
  20. TensorFlow系列专题(一):机器学习基础

热门文章

  1. figure函数--Matplotlib
  2. javascript 内存和连等赋值
  3. web测试实践作业进度报告三
  4. tomcat、redis session共存配置
  5. HTML 遮罩显示工具栏
  6. poj 2356 Find a multiple
  7. 去除vss源代码管理
  8. asp.net 网页做一个浮动层_网页的布局与定位看完这篇就够了
  9. 30分钟快速上手mybatis框架,内容简单易懂,绝无废话,追求速度的来
  10. springsecurity权限过滤略解