Sdílet prostřednictvím


SqlError Třída

Definice

Shromažďuje informace související s upozorněním nebo chybou vrácenou 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
Dědičnost
SqlError
Atributy

Příklady

Následující příklad zobrazí každý z nich SqlError v kolekci 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";
    }
}

Poznámky

Tato třída je vytvořena zprostředkovatelem dat rozhraní .NET Framework pro SQL Server při výskytu chyby. Instance SqlError je vytvořená a spravovaná objektem SqlErrorCollection, který je následně vytvořen SqlException třídou .

Zprávy s úrovní závažnosti 10 nebo nižší jsou informativní a označují problémy způsobené chybami v informacích, které uživatel zadal. Úrovně závažnosti od 11 do 16 generuje uživatel a může je opravit. Úrovně závažnosti od 17 do 25 značí chyby softwaru nebo hardwaru. Když dojde k chybě úrovně 17, 18 nebo 19, můžete pokračovat v práci, i když nemusí být možné provést konkrétní příkaz.

Hodnota zůstane otevřená SqlConnection , pokud je úroveň závažnosti 19 nebo nižší. Pokud je úroveň závažnosti 20 nebo vyšší, server obvykle zavře SqlConnection. Uživatel ale může znovu otevřít připojení a pokračovat. V obou případech se vygeneruje SqlException metodou, která spouští příkaz .

Další informace o chybách generovaných SQL Server najdete v tématu Příčina a řešení chyb databázového stroje. Další informace o úrovních závažnosti najdete v tématu Závažnosti chyb databázového stroje.

Vlastnosti

Class

Získá úroveň závažnosti chyby vrácené z SQL Server.

LineNumber

Získá číslo řádku v rámci transact-SQL příkaz dávky nebo uložené procedury, která obsahuje chybu.

Message

Získá text popisující chybu.

Number

Získá číslo, které identifikuje typ chyby.

Procedure

Získá název uložené procedury nebo volání vzdálené procedury (RPC), která vygenerovala chybu.

Server

Získá název instance SQL Server, která vygenerovala chybu.

Source

Získá název zprostředkovatele, který vygeneroval chybu.

State

Některé chybové zprávy mohou být vyvolány na více místech v kódu databázového stroje. Například chyba 1105 může být vyvolána pro několik různých podmínek. Každá konkrétní podmínka, která vyvolá chybu, přiřadí jedinečný kód stavu.

Metody

ToString()

Získá úplný text chybové zprávy.

Platí pro

Viz také