SqlError Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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. |