Condividi tramite


SqlException.Class Proprietà

Definizione

Ottiene il livello di gravità dell'errore restituito dal provider di dati .NET Framework di SQL Server.

public:
 property System::Byte Class { System::Byte get(); };
public byte Class { get; }
member this.Class : byte
Public ReadOnly Property Class As Byte

Valore della proprietà

Valore da 1 a 25 che indica il livello di gravità dell'errore.

Esempio

Nell'esempio seguente vengono visualizzate ognuna SqlError all'interno dell'insieme SqlErrorCollection .

using System;
using System.Data;
using System.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";
        StringBuilder errorMessages = new StringBuilder();

        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            SqlCommand command = new SqlCommand(queryString, connection);
            try
            {
                command.Connection.Open();
                command.ExecuteNonQuery();
            }
            catch (SqlException ex)
            {
                for (int i = 0; i < ex.Errors.Count; i++)
                {
                    errorMessages.Append("Index #" + i + "\n" +
                        "Message: " + ex.Errors[i].Message + "\n" +
                        "Error Number: " + ex.Errors[i].Number + "\n" +
                        "LineNumber: " + ex.Errors[i].LineNumber + "\n" +
                        "Source: " + ex.Errors[i].Source + "\n" +
                        "Procedure: " + ex.Errors[i].Procedure + "\n");
                }
                Console.WriteLine(errorMessages.ToString());
            }
        }
    }

    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";
    }
}
Public Sub ShowSqlException(ByVal connectionString As String)
    Dim queryString As String = "EXECUTE NonExistantStoredProcedure"
    Dim errorMessages As New StringBuilder()

    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)

        Try
            command.Connection.Open()
            command.ExecuteNonQuery()

        Catch ex As SqlException
            Dim i As Integer
            For i = 0 To ex.Errors.Count - 1
                errorMessages.Append("Index #" & i.ToString() & ControlChars.NewLine _
                    & "Message: " & ex.Errors(i).Message & ControlChars.NewLine _
                    & "Error Number: " & ex.Errors(i).Number & ControlChars.NewLine _
                    & "LineNumber: " & ex.Errors(i).LineNumber & ControlChars.NewLine _
                    & "Source: " & ex.Errors(i).Source & ControlChars.NewLine _
                    & "Procedure: " & ex.Errors(i).Procedure & ControlChars.NewLine)
            Next i
            Console.WriteLine(errorMessages.ToString())
        End Try
    End Using
End Sub

Commenti

I messaggi con un livello di gravità inferiore a 10 sono informativi 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 livello di gravità è 20 o superiore, il server chiude normalmente .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 informazioni sui messaggi informativi e di avviso inviati da SQL Server, vedere la sezione Risoluzione dei problemi della documentazione di SQL Server.

Si tratta di un wrapper per la Class proprietà della prima SqlError nella Errors proprietà .

Si applica a

Vedi anche