Share via


SqlError Classe

Definizione

Raccoglie informazioni rilevanti relative a un avviso o a un errore restituito da 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
Ereditarietà
SqlError
Attributi

Esempio

Nell'esempio seguente vengono visualizzate ognuna SqlError all'interno dell'insieme 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";
    }
}

Commenti

Questa classe viene creata dal provider di dati .NET Framework per SQL Server quando si verifica un errore. Un'istanza di SqlError viene creata e gestita da SqlErrorCollection, che a sua volta viene creata dalla SqlException classe .

I messaggi con livello di gravità pari o inferiore a 10 sono di tipo informativo e indicano problemi causati da errori nelle informazioni immesse da un utente. I livelli di gravità da 11 a 16 vengono generati dall'utente e possono essere corretti dall'utente. I livelli di gravità da 17 a 25 indicano errori del software o dell'hardware. Quando si verifica un errore di livello 17, 18 o 19, è possibile continuare a funzionare, anche se potrebbe non essere possibile eseguire un'istruzione specifica.

Se il livello di gravità è pari o inferiore a 19, l'istanza di SqlConnection rimane aperta. Quando il valore del livello di gravità è 20 o superiore, in genere il server chiude l'oggetto SqlConnection. L'utente può tuttavia riaprire la connessione e continuare. In entrambi i casi, viene generata un'eccezione SqlException dal metodo che esegue il comando.

Per altre informazioni sugli errori generati da SQL Server, vedere Causa e risoluzione degli errori del motore di database. Per altre informazioni sui livelli di gravità, vedere Gravità degli errori del motore di database.

Proprietà

Class

Ottiene il livello di gravità dell'errore restituito da SQL Server.

LineNumber

Ottiene il numero di riga nel batch dei comandi Transact-SQL o nella stored procedure che contiene l'errore.

Message

Ottiene il testo che descrive l'errore.

Number

Ottiene un numero che identifica il tipo di errore.

Procedure

Ottiene il nome della stored procedure o della RPC (Remote Procedure Call) che ha generato l'errore.

Server

Ottiene il nome dell'istanza di SQL Server che ha generato l’errore.

Source

Ottiene il nome del provider che ha generato l'errore.

State

Alcuni messaggi di errore possono essere generati in più punti del codice per il motore di database. Ad esempio, un errore 1105 può essere generato in diverse circostanze. Ogni condizione specifica che genera un errore assegna un codice di stato univoco.

Metodi

ToString()

Ottiene il testo completo del messaggio di errore.

Si applica a

Vedi anche