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.

67 lines
1.8 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
  1. using Apewer;
  2. using System;
  3. namespace Apewer.Source
  4. {
  5. /// <summary>数据库引擎的执行结果。</summary>
  6. public class Execute : IExecute, IToJson
  7. {
  8. private bool _success = false;
  9. private string _message = "";
  10. private int _rows = 0;
  11. /// <summary>语句执行成功。</summary>
  12. public bool Success { get => _success; }
  13. /// <summary>受影响的行数。</summary>
  14. public int Rows { get => _rows; }
  15. /// <summary>消息。</summary>
  16. public string Message { get => _message; }
  17. /// <summary>创建实例。</summary>
  18. public Execute(bool success, string message)
  19. {
  20. _success = false;
  21. _message = message;
  22. }
  23. /// <summary>创建实例。</summary>
  24. public Execute(bool success, int rows)
  25. {
  26. _success = success;
  27. _rows = rows;
  28. }
  29. /// <summary>创建实例,Exception 为 NULL 时候成功,非 NULL 时为失败。</summary>
  30. public Execute(Exception exception)
  31. {
  32. _success = exception == null;
  33. _message = RuntimeUtility.Message(exception);
  34. }
  35. /// <summary>从 <see cref="Execute"/> 到 <see cref="Execute"/> 的隐式转换,判断 <see cref="Execute"/> 执行成功。</summary>
  36. public static implicit operator bool(Execute instance)
  37. {
  38. return instance != null && instance.Success;
  39. }
  40. #region IToJson
  41. /// <summary>转换为 Json 对象。</summary>
  42. public Json ToJson()
  43. {
  44. var jsonObject = Json.NewObject();
  45. jsonObject.SetProperty("success", _success);
  46. jsonObject.SetProperty("message", _message);
  47. jsonObject.SetProperty("rows", _rows);
  48. return jsonObject;
  49. }
  50. #endregion
  51. }
  52. }