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
67 lines
1.8 KiB
using Apewer;
|
|
using System;
|
|
|
|
namespace Apewer.Source
|
|
{
|
|
|
|
/// <summary>数据库引擎的执行结果。</summary>
|
|
public class Execute : IExecute, IToJson
|
|
{
|
|
|
|
private bool _success = false;
|
|
private string _message = "";
|
|
private int _rows = 0;
|
|
|
|
/// <summary>语句执行成功。</summary>
|
|
public bool Success { get => _success; }
|
|
|
|
/// <summary>受影响的行数。</summary>
|
|
public int Rows { get => _rows; }
|
|
|
|
/// <summary>消息。</summary>
|
|
public string Message { get => _message; }
|
|
|
|
/// <summary>创建实例。</summary>
|
|
public Execute(bool success, string message)
|
|
{
|
|
_success = false;
|
|
_message = message;
|
|
}
|
|
|
|
/// <summary>创建实例。</summary>
|
|
public Execute(bool success, int rows)
|
|
{
|
|
_success = success;
|
|
_rows = rows;
|
|
}
|
|
|
|
/// <summary>创建实例,Exception 为 NULL 时候成功,非 NULL 时为失败。</summary>
|
|
public Execute(Exception exception)
|
|
{
|
|
_success = exception == null;
|
|
_message = RuntimeUtility.Message(exception);
|
|
}
|
|
|
|
/// <summary>从 <see cref="Execute"/> 到 <see cref="Execute"/> 的隐式转换,判断 <see cref="Execute"/> 执行成功。</summary>
|
|
public static implicit operator bool(Execute instance)
|
|
{
|
|
return instance != null && instance.Success;
|
|
}
|
|
|
|
#region IToJson
|
|
|
|
/// <summary>转换为 Json 对象。</summary>
|
|
public Json ToJson()
|
|
{
|
|
var jsonObject = Json.NewObject();
|
|
jsonObject.SetProperty("success", _success);
|
|
jsonObject.SetProperty("message", _message);
|
|
jsonObject.SetProperty("rows", _rows);
|
|
return jsonObject;
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
|
|
}
|