SqlError 类

定义

收集与 SQL Server 返回的警告或错误有关的信息。

public ref class SqlError sealed
[System.Serializable]
public sealed class SqlError
public sealed class SqlError
[<System.Serializable>]
type SqlError = class
type SqlError = class
Public NotInheritable Class SqlError
继承
SqlError
属性

示例

以下示例显示 SqlError 集合中的每个 SqlErrorCollection

using Microsoft.Data.SqlClient;
using System.Text;

class Program
{
    static void Main()
    {
        string s = GetConnectionString();
        ShowSqlException(s);
        Console.ReadLine();
    }
    public static void ShowSqlException(string connectionString)
    {
        string queryString = "EXECUTE NonExistantStoredProcedure";

        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            SqlCommand command = new SqlCommand(queryString, connection);
            try
            {
                command.Connection.Open();
                command.ExecuteNonQuery();
            }
            catch (SqlException ex)
            {
                DisplaySqlErrors(ex);
            }
        }
    }

    private static void DisplaySqlErrors(SqlException exception)
    {
        for (int i = 0; i < exception.Errors.Count; i++)
        {
            Console.WriteLine("Index #" + i + "\n" +
                "Error: " + exception.Errors[i].ToString() + "\n");
        }
        Console.ReadLine();
    }

    static private string GetConnectionString()
    {
        // To avoid storing the connection string in your code, 
        // you can retrieve it from a configuration file.
        return "Data Source=(local);Initial Catalog=AdventureWorks;"
            + "Integrated Security=SSPI";
    }
}

注解

此类由 .NET Framework 数据提供程序创建,以便在发生错误时SQL Server。 的 SqlError 实例由 SqlErrorCollection创建和管理,后者又由 SqlException 类创建。

严重级别为 10 或以下的消息为信息性的,并指示问题是由用户输入的信息中的错误导致的。 从 11 到 16 的严重性级别由用户生成,用户可以更正。 严重级别为 17 到 25 的消息指示存在软件或硬件错误。 发生级别 17、18 或 19 错误时,可以继续工作,但可能无法执行特定语句。

当严重级别为 19 或以下时,SqlConnection 将保持打开状态。 当严重度等于或大于 20 时,服务器通常会关闭 SqlConnection。 但是,用户可以重新打开连接并继续操作。 最后两种情况下,执行该命令的方法将生成 SqlException

有关SQL Server生成的错误的详细信息,请参阅数据库引擎错误的原因和解决方法。 有关严重级别的详细信息,请参阅 数据库引擎错误严重性

属性

名称 说明
Class

获取从 SQL Server 返回的错误的严重程度。

LineNumber

从包含错误的 Transact-SQL 批命令或存储过程中获取行号。

Message

获取对错误进行描述的文本。

Number

获取一个标识错误类型的数字。

Procedure

获取生成错误的存储过程或远程过程调用 (RPC) 的名称。

Server

获取生成错误的 SQL Server 实例的名称。

Source

获取生成错误的提供程序的名称。

State

某些错误消息可能在 数据库引擎代码中多处出现。 例如,几种不同情况下都可能引发 1105 错误。 每个引发错误的特定情况都分配唯一的状态代码。

方法

名称 说明
ToString()

获取错误信息的完整文本。

适用于

另请参阅