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.
71 lines
2.2 KiB
71 lines
2.2 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace Apewer.Source
|
|
{
|
|
|
|
/// <summary>表示在执行 SQL 语句执行过程中发生的错误。</summary>
|
|
[Serializable]
|
|
public sealed class SqlException : Exception
|
|
{
|
|
|
|
const string EmptyMessage = "(无消息)";
|
|
|
|
string _msg = null;
|
|
string _sql = null;
|
|
|
|
/// <summary>获取描述当前异常的消息。</summary>
|
|
public override string Message { get => _msg; }
|
|
|
|
/// <summary>获取引发异常的 SQL 语句。</summary>
|
|
public string Statement { get => _sql; }
|
|
|
|
/// <summary>初始化 <see cref="SqlException"/> 类的新实例。</summary>
|
|
/// <param name="message">描述当前异常的消息。</param>
|
|
/// <param name="statement">附带 SQL 语句。</param>
|
|
public SqlException(string message, string statement = null)
|
|
{
|
|
_msg = string.IsNullOrEmpty(message) ? EmptyMessage : message;
|
|
|
|
_sql = statement;
|
|
}
|
|
|
|
/// <summary>初始化 <see cref="SqlException"/> 类的新实例。</summary>
|
|
/// <param name="query">用于获取消息的查询结果。</param>
|
|
/// <param name="statement">附带 SQL 语句。</param>
|
|
public SqlException(IQuery query, string statement = null)
|
|
{
|
|
if (query == null)
|
|
{
|
|
_msg = "查询结果实例无效。";
|
|
_sql = statement;
|
|
return;
|
|
}
|
|
|
|
_msg = query.Message;
|
|
if (string.IsNullOrEmpty(_msg)) _msg = EmptyMessage;
|
|
|
|
_sql = statement;
|
|
}
|
|
|
|
/// <summary>初始化 <see cref="SqlException"/> 类的新实例。</summary>
|
|
/// <param name="execute">用于获取消息的执行结果。</param>
|
|
/// <param name="statement">附带 SQL 语句。</param>
|
|
public SqlException(IExecute execute, string statement = null)
|
|
{
|
|
if (execute == null)
|
|
{
|
|
_msg = "执行结果实例无效。";
|
|
return;
|
|
}
|
|
|
|
_msg = execute.Message;
|
|
if (string.IsNullOrEmpty(_msg)) _msg = EmptyMessage;
|
|
|
|
_sql = statement;
|
|
}
|
|
|
|
}
|
|
|
|
}
|