SqlHelper.cs 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. using System.Text;
  2. using System.Threading.Tasks;
  3. using System;
  4. using System.Collections.Generic;
  5. using Procurement.ViewModel;
  6. using System.Text.Json;
  7. using Procurement.EntityFrameworkCore.SqlRepositories;
  8. using Procurement.Controllers;
  9. using System.Collections;
  10. using Procurement.Enums;
  11. using Volo.Abp.Domain.Repositories;
  12. using Procurement.Services;
  13. using Newtonsoft.Json.Linq;
  14. using System.Data;
  15. using System.Data.SqlClient;
  16. using Procurement.Core;
  17. namespace Procurement.Helpers
  18. {
  19. public class SqlHelper
  20. {
  21. /// <summary>
  22. /// 构建mysql参数数组
  23. /// </summary>
  24. /// <param name="json"></param>
  25. /// <returns></returns>
  26. //public static async Task<SqlParameterViewModel[]> CreateSqlParameters(ISqlRepository sqlRepository,string proc,JsonElement json)
  27. //{
  28. // Dictionary<string, JsonElement> dict = JsonSerializer.Deserialize<Dictionary<string, JsonElement>>(json);
  29. // Common common = new Common(sqlRepository);
  30. // var items = await common.GetCommonItems("", "parameterlist", proc, "");
  31. // List<SqlParameterViewModel> listParams = new List<SqlParameterViewModel>();
  32. // foreach(KeyValuePair<string,object> item in items)
  33. // {
  34. // foreach (var d in (ArrayList)item.Value)
  35. // {
  36. // Dictionary<string, object> param = (Dictionary<string, object>)d;
  37. // string paramMode = param["ParamMode"].ToString().ToUpper();
  38. // string paramName = param["ParamName"].ToString();
  39. // string dataType = param["DataType"].ToString().ToLower();
  40. // object paramValue = null;
  41. // if (dict.ContainsKey(paramName))
  42. // {
  43. // JsonElement valueObj = dict[paramName];
  44. // switch (valueObj.ValueKind)
  45. // {
  46. // case JsonValueKind.Null:
  47. // paramValue = null;
  48. // break;
  49. // case JsonValueKind.Number:
  50. // paramValue = valueObj.GetDouble();
  51. // break;
  52. // case JsonValueKind.False:
  53. // paramValue = false;
  54. // break;
  55. // case JsonValueKind.True:
  56. // paramValue = true;
  57. // break;
  58. // case JsonValueKind.Undefined:
  59. // paramValue = null;
  60. // break;
  61. // case JsonValueKind.String:
  62. // paramValue = valueObj.GetString();
  63. // break;
  64. // }
  65. // }
  66. // SqlParameterViewModel paramModel = new SqlParameterViewModel { ParameterName = "@" + paramName, Value = paramValue, SqlDbType = SqlDbTypes.VarChar };
  67. // if (dataType == "tinyint")
  68. // {
  69. // paramModel.SqlDbType = SqlDbTypes.Int;
  70. // }
  71. // else if (dataType == "int")
  72. // {
  73. // paramModel.SqlDbType = SqlDbTypes.Int;
  74. // }
  75. // else if (dataType == "bigint")
  76. // {
  77. // paramModel.SqlDbType = SqlDbTypes.BigInt;
  78. // }
  79. // else if (dataType == "decimal")
  80. // {
  81. // paramModel.SqlDbType = SqlDbTypes.Decimal;
  82. // }
  83. // else if (dataType == "date" || dataType == "datetime")
  84. // {
  85. // paramModel.SqlDbType = SqlDbTypes.DateTime;
  86. // }
  87. // if (paramMode == "OUT")
  88. // {
  89. // paramModel.Direction = SqlParamDirection.Output;
  90. // }
  91. // listParams.Add(paramModel);
  92. // }
  93. // }
  94. // return listParams.ToArray();
  95. //}
  96. /// <summary>
  97. /// 构建sql参数数组
  98. /// </summary>
  99. /// <param name="json"></param>
  100. /// <returns></returns>
  101. public static SqlParameter[] CreateSqlParameters(JsonElement json)
  102. {
  103. new NLogHelper("Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker").Info("print", "print", json.ToString().Replace("\n","\r\n"));
  104. Dictionary<string, JsonElement> dict = JsonSerializer.Deserialize<Dictionary<string, JsonElement>>(json);
  105. List<SqlParameter> listParams = new List<SqlParameter>();
  106. foreach (KeyValuePair<string, JsonElement> d in dict)
  107. {
  108. string paramName = d.Key.ToString();
  109. object paramValue = null;
  110. JsonElement valueObj = dict[paramName];
  111. switch (valueObj.ValueKind)
  112. {
  113. case JsonValueKind.Null:
  114. paramValue = null;
  115. break;
  116. case JsonValueKind.Number:
  117. paramValue = valueObj.GetDouble();
  118. break;
  119. case JsonValueKind.False:
  120. paramValue = false;
  121. break;
  122. case JsonValueKind.True:
  123. paramValue = true;
  124. break;
  125. case JsonValueKind.Undefined:
  126. paramValue = null;
  127. break;
  128. case JsonValueKind.String:
  129. paramValue = valueObj.GetString();
  130. break;
  131. }
  132. SqlParameter param = new SqlParameter { ParameterName = "@" + paramName, Value = paramValue};
  133. listParams.Add(param);
  134. }
  135. return listParams.ToArray();
  136. }
  137. }
  138. }