EnumExpression.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace Models
  6. {
  7. public enum EnumExpression
  8. {
  9. /// <summary>
  10. /// 相似
  11. /// </summary>
  12. like=1,
  13. /// <summary>
  14. /// 包含
  15. /// </summary>
  16. In=2,
  17. }
  18. public class EExpression
  19. {
  20. public EExpression(string data, string operation, string checkData)
  21. {
  22. this.Data = data;
  23. this.Operation = operation;
  24. this.CheckData = checkData;
  25. }
  26. public EExpression(string data, string operation, int checkData)
  27. {
  28. this.Data = data;
  29. this.Operation = operation;
  30. this.CheckData = checkData;
  31. }
  32. public EExpression(string data, EnumExpression operation, string checkData)
  33. {
  34. this.Data = data;
  35. this.Operation = operation;
  36. this.CheckData = checkData;
  37. }
  38. public EExpression(string data, EnumExpression operation, List<int> checkData)
  39. {
  40. this.Data = data;
  41. this.Operation = operation;
  42. this.CheckData = checkData;
  43. }
  44. public EExpression(string data, EnumExpression operation, List<string> checkData)
  45. {
  46. this.Data = data;
  47. this.Operation = operation;
  48. this.CheckData = checkData;
  49. }
  50. private Object Data { get; set; }
  51. private object Operation { get; set; }
  52. private Object CheckData { get; set; }
  53. /// <summary>
  54. /// 返回例子: "2 > 1";
  55. /// </summary>
  56. /// <returns></returns>
  57. public string GetSql()
  58. {
  59. string sql = string.Empty;
  60. if (CheckData.GetType()==typeof(int)&& Operation.GetType() == typeof(string))
  61. {
  62. sql= string.Format("{0} {1}{2}", Data, Operation, CheckData);
  63. }
  64. else if (CheckData.GetType() == typeof(string)&& Operation.GetType() == typeof(string))
  65. {
  66. sql= string.Format("{0} {1}'{2}'", Data, Operation, CheckData);
  67. }
  68. else if (Operation.GetType() == typeof(EnumExpression))
  69. {
  70. if (((EnumExpression)Operation)==EnumExpression.like)
  71. {
  72. sql = string.Format("{0} like '{1}'", Data, CheckData);
  73. }
  74. if (((EnumExpression)Operation) == EnumExpression.In)
  75. {
  76. if (CheckData.GetType()==typeof(List<int>))
  77. {
  78. var data = CheckData as List<int>;
  79. sql = string.Format("{0} in ({1})", Data, string.Join(",", data));
  80. }
  81. else if (CheckData.GetType() == typeof(List<string>))
  82. {
  83. List<string> data = CheckData as List<string>;
  84. List<string> sqllist = new List<string>();
  85. for (int i = 0; i < data.Count; i++)
  86. {
  87. sqllist.Add("'" + data[i] + "'") ;
  88. }
  89. sql = string.Format("{0} in ({1}) ", Data, string.Join(",", sqllist));
  90. }
  91. }
  92. }
  93. return sql;
  94. }
  95. }
  96. }