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 можно продолжить работу, хотя выполнение определенной инструкции может быть невозможно.

SqlConnection остается открытым, если уровень важности не превышает 19. Когда уровень важности превышает 20, сервер обычно закрывает SqlConnection. Тем не менее, пользователь может опять открыть подключение и продолжить работу. В обоих случаях выполняющим команду методом создается SqlException.

Дополнительные сведения об ошибках, создаваемых SQL Server, см. в статье Причина и разрешение ошибок ядра СУБД. Дополнительные сведения об уровнях серьезности см. в разделе Серьезность ошибок ядра СУБД.

Свойства

Class

Возвращает уровень важности ошибки, возвращаемой SQL Server.

LineNumber

Возвращает номер содержащей ошибку строки пакета команд Transact-SQL или хранимой процедуры.

Message

Возвращает текст, описывающий ошибку.

Number

Возвращает число, определяющее тип ошибки.

Procedure

Возвращает имя вызвавшей ошибку хранимой процедуры или удаленного вызова процедур (RPC).

Server

Возвращает имя вызвавшего ошибку экземпляра SQL Server.

Source

Возвращает имя вызвавшего ошибку поставщика.

State

Некоторые сообщения об ошибках могут возникнуть в нескольких точках кода компонента Компонент Database Engine. Например, ошибка 1105 может возникнуть при различных условиях. Каждое условие, которое вызывает ошибку, присваивает уникальный код состояния.

Методы

ToString()

Возвращает полный текст сообщения об ошибке.

Применяется к

См. также раздел