123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Models
- {
- public enum EnumExpression
- {
- /// <summary>
- /// 相似
- /// </summary>
- like=1,
- /// <summary>
- /// 包含
- /// </summary>
- In=2,
- }
- public class EExpression
- {
- public EExpression(string data, string operation, string checkData)
- {
- this.Data = data;
- this.Operation = operation;
- this.CheckData = checkData;
- }
- public EExpression(string data, string operation, int checkData)
- {
- this.Data = data;
- this.Operation = operation;
- this.CheckData = checkData;
- }
- public EExpression(string data, EnumExpression operation, string checkData)
- {
- this.Data = data;
- this.Operation = operation;
- this.CheckData = checkData;
- }
- public EExpression(string data, EnumExpression operation, List<int> checkData)
- {
- this.Data = data;
- this.Operation = operation;
- this.CheckData = checkData;
- }
- public EExpression(string data, EnumExpression operation, List<string> checkData)
- {
- this.Data = data;
- this.Operation = operation;
- this.CheckData = checkData;
- }
- private Object Data { get; set; }
- private object Operation { get; set; }
- private Object CheckData { get; set; }
- /// <summary>
- /// 返回例子: "2 > 1";
- /// </summary>
- /// <returns></returns>
- public string GetSql()
- {
- string sql = string.Empty;
- if (CheckData.GetType()==typeof(int)&& Operation.GetType() == typeof(string))
- {
- sql= string.Format("{0} {1}{2}", Data, Operation, CheckData);
- }
- else if (CheckData.GetType() == typeof(string)&& Operation.GetType() == typeof(string))
- {
- sql= string.Format("{0} {1}'{2}'", Data, Operation, CheckData);
- }
- else if (Operation.GetType() == typeof(EnumExpression))
- {
- if (((EnumExpression)Operation)==EnumExpression.like)
- {
- sql = string.Format("{0} like '{1}'", Data, CheckData);
- }
- if (((EnumExpression)Operation) == EnumExpression.In)
- {
- if (CheckData.GetType()==typeof(List<int>))
- {
- var data = CheckData as List<int>;
- sql = string.Format("{0} in ({1})", Data, string.Join(",", data));
- }
- else if (CheckData.GetType() == typeof(List<string>))
- {
- List<string> data = CheckData as List<string>;
- List<string> sqllist = new List<string>();
- for (int i = 0; i < data.Count; i++)
- {
- sqllist.Add("'" + data[i] + "'") ;
- }
- sql = string.Format("{0} in ({1}) ", Data, string.Join(",", sqllist));
- }
- }
- }
-
- return sql;
- }
- }
- }
|