JGrid中多条件查询filters的两种解析方法
来源:互联网 发布:炒股必知 编辑:程序博客网 时间:2024/05/17 02:24
第一种:
string filters = HttpContext.Current.Request["filters"].ToString(); if (!string.IsNullOrEmpty(filters)) { TextReader tr = new StringReader(filters); JsonTextReader reader = new JsonTextReader(tr); while (reader.Read()) { if (reader.Depth == 1 && reader.TokenType == JsonToken.String) groupOp = " " + (string)reader.Value + " "; if (reader.Depth == 3 && reader.TokenType == JsonToken.String && reader.Path.Substring(9) == "field") searchField = (string)reader.Value; if (reader.Depth == 3 && reader.TokenType == JsonToken.String && reader.Path.Substring(9) == "op") searchOper = (string)reader.Value; if (reader.Depth == 3 && reader.TokenType == JsonToken.String && reader.Path.Substring(9) == "data") searchString = (string)reader.Value; if (reader.Depth == 2 && reader.TokenType == JsonToken.EndObject) searchWhere(searchField, searchOper, searchString); } }
第二种:
string filters = HttpContext.Current.Request["filters"].ToString(); //{"groupOp":"AND","rules":[{"field":"IMEI","op":"cn","data":"6"},{"field":"createtime","op":"ge","data":"2012-07-05"}]} if (!string.IsNullOrEmpty(filters)) { JObject o=(JObject)JsonConvert.DeserializeObject(filters); groupOp= " "+o["groupOp"].ToString()+" ";//留空格用来拼sql while (o["rules"].HasValues) { searchWhere(o["rules"].First["field"].ToString(), o["rules"].First["op"].ToString(), o["rules"].First["data"].ToString()); o["rules"].First.Remove(); } }
searchWhere方法:
public void searchWhere(string searchField,string searchOper,string searchString) { if (searchString != "") { switch (searchOper) { case "eq": sql_for_where += groupOp + searchField + "='" + searchString + "'"; break; case "ne": sql_for_where += groupOp + searchField + "!='" + searchString + "'"; break; case "le": sql_for_where += groupOp + searchField + "<=to_date('" + searchString + "','yyyy-mm-dd')"; break; case "ge": sql_for_where += groupOp + searchField + ">=to_date('" + searchString + "','yyyy-mm-dd')"; break; case "cn": sql_for_where += groupOp + searchField + " like '%" + searchString + "%'"; break; case "bw": sql_for_where += groupOp + searchField + " like '" + searchString + "%'"; break; } } }
展示一下:
- JGrid中多条件查询filters的两种解析方法
- PHP查询数据库中满足条件的记录条数(两种实现方法)
- 多条件查询的两种实现方式
- Hibernate条件查询的两种方式
- jqGrid使用multipleSearch产生的查询条件filters分析
- EF中一种简单的多条件动态查询方法
- jgrid常用的属性和方法
- PL/SQL无法使用中文条件查询解决的两种方法
- SQL多条件查询拼接in中条件方法
- 查询条件解析类,生成查询语句的查询条件
- Ajax中解析Json的两种方法详解
- Ajax中解析Json的两种方法详解
- Ajax中解析Json的两种方法详解
- Ajax中解析Json的两种方法详解
- java中解析逻辑表达式的两种方法比较
- SQL按同字段的两种条件查询数量
- 多条件数据库查询的优化方法
- 多条件数据库查询的优化方法
- 从程序员到项目经理(二)
- NAND速度优化探索
- Android应用程序开发以及背后的设计思想深度剖析(5)
- 从程序员到项目经理(三):认识项目经理
- spring security 源码分析: 过滤器
- JGrid中多条件查询filters的两种解析方法
- 常用struts2标签讲解(上)
- 基于事件的线程同步
- Difference between Pager mode and session mode
- Linux装机时未设密码后期设置root密码过程一切换root身份
- ESF相关
- 从程序员到项目经理(四):外行可以领导内行吗
- Java中取小数点后两位
- 面试中的开放性问题