You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.2 KiB

1 year ago
  1. using System.Collections.Generic;
  2. using System.Text;
  3. namespace Repository
  4. {
  5. public class Query
  6. {
  7. public Query()
  8. {
  9. }
  10. public Query(string proc, string flag = null, Dictionary<string, string> param = null)
  11. {
  12. this.Procedure = proc;
  13. this.Flag = flag;
  14. this.Params = param;
  15. }
  16. public string Procedure { get; set; }
  17. public string Flag { get; set; }
  18. public Dictionary<string, string> Params { get; set; }
  19. public override string ToString()
  20. {
  21. var sql = new StringBuilder("EXEC " + Procedure);
  22. if (!string.IsNullOrEmpty(Flag))
  23. {
  24. sql.AppendFormat(" @Flag = '{0}'", Flag);
  25. if (Params.Count > 0)
  26. {
  27. sql.Append(", ");
  28. }
  29. }
  30. if (Params.Count > 0)
  31. {
  32. var st = new List<string>();
  33. foreach (var v in Params)
  34. {
  35. st.Add(string.Format("{0} = {1}", v.Key, v.Value));
  36. }
  37. sql.Append(string.Join(",", st));
  38. }
  39. return sql.ToString();
  40. }
  41. }
  42. }