您的位置:首页 > 其它

条件查询

2019-06-09 20:05 295 查看
开发工具与关键技术:VS    C#
作者:宋永烨
撰写时间:2019-6-2

当用户查看表格的大量数据是,由于数据量过于巨大会导致很难获取到需要的数据,在这时,就需要一个方法,一个可以通过用户输入获取到用户需要的数据并回填入表格,
1.获取用户输入
这是条件查询的第一步,首先获取到用户的输入,然后在查询数据时,通过查询方法的筛选功能,将不需要的数据全部除去,只留下与用户输入的数据匹配的,然后将查询好的数据返回给页面

获取值,使用插件会更快
通过jQuery的插件,选中用户输入的文本框,然后在通过插件修改jQuery的value值,赋值为控制器传来的数据
2.上传
第二步,上传,通过异步提交将数据传入数据库,如果不是什么敏感信息,就可以用get, get传数据更快

用户查询的输入除input文本框外,还会用到下拉框,大量的下拉框,所以封装一个下拉框赋值的方法会节省很多时间,
该方法使用两个参数,url:查询方法的物理路径,用来链接到查询的方法,id:通过ID选择器选与东中的中需要删除的元素的父元素过jQuery插件的方法删除它的所有子元素,然后再往里面添加一个元素,一个label元素,.
使用each遍历所有的需要删除与添加的父元素,将他们的值修改为控制器查询出的值,之后就可以直接调用这和函数, 进行引用
3.查询

创建一个可以被layui接收的数据,一些接收视图层传来的数据,此处变量的名称需要与视图层传输的值对应的键对应,数据类型不要搞错.
接下来就是查询,连表查询所有的需要的字段

由于代码太多,此处只列举一部分,连表查询数据,表与表之间通过共同的键进行链接,
select new 后面接的变量必须包含需要查询的所有字段

因为option的值获取的不是文本值而是value值,而有一部分下拉框可能没有选这,没选择的即空的下拉框的option的value1值被设置为0,故只需判断传参是否大于零即可判断该下拉框是否勾选
当传来的参数大与0时,将该参数在已查询的包含所有字段的变量中查询并赋值给自己,即保留与传参匹配的值,int类型的接如此
除下拉框外,还有用户输入的文本框,传输时使用字符串类型的值,判断上都稍微有点不同

通过string.IsNullOrEmpty判断是否为空,取反即为是否不为空,如果不为空,则将用户输入的字符串在listTitles中查找,当然需要去空格,查找方式也有所不同,通过Contains方法判断用户输入的字符串是否在listTitles中出现过,然后赋值给listTitles

获取listTitles的长度,创建一个TitlesInfor(可以存储所有需要的字段)类型的列表的变量layuiTableData, listTitles的倒序排序,通过它的ToVoidNo为false
Skip为跳过的数据条数,该效果用于判断分页后的那一页该显示的数据的开头,跳过的数据个数为(此处需要一个实体类),通过获取每页显示的数据条数与当前的页数的个数
Take 返回指定数量的数据,用于决定每页的数据个数,值同样通过实体类进行计算与赋值
然后创建一个可以接收TitlesInfor的用于给layui进行分类的数据类型layuiTableData
然后将totals赋值给count即获取数据的条数, listTitles赋值给data,倒序排序的查询出的数据,data可以接收listTitles的数据类型,因为它们数据类型相同
最后,将打包封装好的数据传输给layui即可显示出用户想看到的数据
以上便是一个完整的条件查询
由于篇幅关系,就再写一些与查询语句有关的

一个简单的查询,将实例化的数据库中的某张表赋值给tb,然后查询tb即获取整张表赋值给list1,一个简单的查询就完成了,接下来只要将数据返回给页面,处理后即可在页面上显示

上图为另一种写法,较之于第一种,代码更少,此方法在查询的表较少(最好是单表),筛选的条件较少时,优势十分明显,但在多张表链接,筛选的条件过多时,此方法的代码结构会较为混乱,而正常的方法的优势就是条理性更强,更容易被理解,此写法的优势是,在查询的代码结构较为简单是,使用这种写法更加便捷
新增与修改的区别

新增一条数据需要查询需要增加的数据,然后收集每个字段的数据,再赋值,最后将数据添加到数据库中
而修改是查询到需要修改的数据,获取需要修改的字段需要修改的信息,然后再数据库中找到原数据后替换为新数据
过程大致相同,都需要获取到新增或修改的字段后赋值,然后添加到数据库或修改数据库原有的资料
但是,修改相较之于新增,最大的区别就是,修改必须传一个主键ID,否则当代码修改时会报错,原因是修改需要先找到原数据,而字段再数据库中的唯一属性就是主键ID
既然,查,增,改都有了,那就再来一个删除吧
删除本身很简单,只要获取需要删除的数据的主键ID然后通过主键ID去查询,查到了,删除,查不到,报错,但数据之间的关联导致删除是一件很麻烦的是(删除的判断太多导致篇幅太长就不截完整的删除了)
比如删除一个学生的信息,那需要去学生表删除学生的信息,一般还有明细表,用户表等,否需要一并删除掉
再比如删除一个学院,那他下面的专业怎么办?年级,班级,学生呢?所以删除很繁琐,但又不难,实在不行就不删除,改停用

这就是删除的代码,特简单,一个查询,单表的,查询的筛选条件是需要删除的数据的主键ID
查询后直接通过remove删除掉就没了,但删除前需要大量的判断,多到怀疑人生,还要考虑关联信息,有些数据基本就删除不了,所以主表的信息一般都不建议删除,比如用户表,一个社交软件
用户表关联的数据太多,还是停用来的稳妥.
总结:下拉框的绑定可能使用次数很多,封装成一个方法可以有效减少重复的代码
给下拉框保留一个空的(此处的空的指无查询条件的),value值设置为0,且value最好为整形,即方便接收,又方便判断是否为空
字符串的判断方法与整形的判断方法,查询方法皆不相同,切勿搞混
代码来源与教师

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: