Compartilhar via


SqlError Classe

Definição

Coleta informações relevantes para um aviso ou erro retornado pelo 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
Herança
SqlError
Atributos

Exemplos

O exemplo a seguir exibe cada SqlError um dentro da SqlErrorCollection coleção.

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";
    }
}

Comentários

Essa classe é criada pelo provedor de dados .NET Framework para SQL Server quando ocorre um erro. Uma instância de SqlError é criada e gerenciada pelo , que, por SqlErrorCollectionsua vez, é criado pela SqlException classe .

As mensagens com nível de severidade 10 ou inferior são informativas e indicam problemas causados por erros nas informações inseridas por um usuário. Os níveis de gravidade de 11 a 16 são gerados pelo usuário e podem ser corrigidos pelo usuário. Os níveis de severidade de 17 a 25 indicam erros de software ou hardware. Quando ocorre um erro de nível 17, 18 ou 19, você pode continuar trabalhando, embora não seja possível executar uma instrução específica.

O SqlConnection permanece aberto quando o nível de severidade é 19 ou inferior. Quando o nível de severidade é 20 ou superior, o servidor geralmente encerra o SqlConnection. No entanto, o usuário pode reabrir a conexão e continuar. Em ambos os casos, SqlException é gerada pelo método que executa o comando.

Para obter mais informações sobre erros gerados por SQL Server, consulte Causa e resolução de erros do mecanismo de banco de dados. Para obter mais informações sobre níveis de severidade, consulte Severidades de erro do mecanismo de banco de dados.

Propriedades

Class

Obtém o nível de gravidade do erro retornado do SQL Server.

LineNumber

Obtém o número de linha dentro do lote de comandos Transact-SQL ou procedimento armazenado que gerou o erro.

Message

Obtém o texto que descreve o erro.

Number

Obtém um número que identifica o tipo de erro.

Procedure

Obtém o nome do procedimento armazenado ou da RPC (chamada de procedimento remoto) que gerou o erro.

Server

Obtém o nome da instância do SQL Server que gerou o erro.

Source

Obtém o nome do provedor que gerou o erro.

State

Algumas mensagens de erro podem ser geradas em vários pontos no código para o mecanismo de banco de dados. Por exemplo, um erro 1105 pode ser gerado para várias condições diferentes. Cada condição específica que gera um erro atribui um código de estado exclusivo.

Métodos

ToString()

Obtém ou define o texto completo da mensagem de erro.

Aplica-se a

Confira também