Udostępnij za pośrednictwem


SqlError Klasa

Definicja

Zbiera informacje istotne dla ostrzeżenia lub błędu zwróconego przez 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
Dziedziczenie
SqlError
Atrybuty

Przykłady

Poniższy przykład przedstawia każdy SqlError z nich w kolekcji 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";
    }
}

Uwagi

Ta klasa jest tworzona przez dostawcę danych .NET Framework dla SQL Server w przypadku wystąpienia błędu. Wystąpienie klasy SqlError jest tworzone i zarządzane przez SqlErrorCollectionklasę SqlException .

Komunikaty o poziomie ważności 10 lub mniejszym są informacyjne i wskazują problemy spowodowane błędami w informacjach, które wprowadzono przez użytkownika. Poziomy ważności od 11 do 16 są generowane przez użytkownika i mogą być poprawiane przez użytkownika. Poziomy ważności od 17 do 25 wskazują błędy oprogramowania lub sprzętu. Gdy wystąpi błąd poziomu 17, 18 lub 19, możesz kontynuować pracę, chociaż może nie być w stanie wykonać określonej instrukcji.

Pozostaje SqlConnection otwarty, gdy poziom ważności wynosi 19 lub mniej. Gdy poziom ważności wynosi 20 lub więcej, serwer zwykle zamyka wartość SqlConnection. Jednak użytkownik może ponownie otworzyć połączenie i kontynuować. W obu przypadkach SqlException element jest generowany przez metodę wykonującą polecenie .

Aby uzyskać więcej informacji na temat błędów generowanych przez SQL Server, zobacz Przyczyna i rozwiązywanie błędów aparatu bazy danych. Aby uzyskać więcej informacji na temat poziomów ważności, zobacz Ważność błędu aparatu bazy danych.

Właściwości

Class

Pobiera poziom ważności błędu zwróconego z SQL Server.

LineNumber

Pobiera numer wiersza w partii poleceń Języka Transact-SQL lub procedurę składowaną zawierającą błąd.

Message

Pobiera tekst opisujący błąd.

Number

Pobiera liczbę identyfikującą typ błędu.

Procedure

Pobiera nazwę procedury składowanej lub zdalnego wywołania procedury (RPC), które wygenerowało błąd.

Server

Pobiera nazwę wystąpienia SQL Server, które wygenerowało błąd.

Source

Pobiera nazwę dostawcy, który wygenerował błąd.

State

Niektóre komunikaty o błędach można zgłaszać w wielu punktach w kodzie aparatu bazy danych. Na przykład można zgłaszać błąd 1105 dla kilku różnych warunków. Każdy konkretny warunek, który zgłasza błąd, przypisuje unikatowy kod stanu.

Metody

ToString()

Pobiera pełny tekst komunikatu o błędzie.

Dotyczy

Zobacz też