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()

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

适用于

另请参阅