Share via


SqlError 클래스

정의

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
상속
SqlError
특성

예제

다음 예제에서는 각 SqlError 내에서 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";
    }
}

설명

이 클래스는 오류가 발생할 때 SQL Server .NET Framework 데이터 공급자에 의해 만들어집니다. 의 SqlError 인스턴스는 에 의해 SqlErrorCollection만들어지고 관리되며, 이 인스턴스는 클래스에 의해 SqlException 만들어집니다.

심각도가 10 이하인 메시지는 정보를 전달하기 위한 것이며 사용자가 정보를 잘못 입력하여 문제가 발생했음을 의미합니다. 11에서 16까지의 심각도 수준은 사용자가 생성하며 사용자가 수정할 수 있습니다. 17에서 25까지의 심각도는 소프트웨어나 하드웨어 오류를 나타냅니다. 수준 17, 18 또는 19 오류가 발생하면 특정 문을 실행하지 못할 수도 있지만 작업을 계속할 수 있습니다.

SqlConnection 심각도 수준이 19 이하인 경우 는 열린 상태로 유지됩니다. 심각도 수준이 20 이상인 경우 서버는 일반적으로 를 SqlConnection닫습니다. 그러나 사용자는 연결을 다시 열고 계속할 수 있습니다. 두 경우 모두 명령을 SqlException 실행하는 메서드에 의해 이 생성됩니다.

SQL Server 생성된 오류에 대한 자세한 내용은 데이터베이스 엔진 오류의 원인 및 해결을 참조하세요. 심각도 수준에 대한 자세한 내용은 데이터베이스 엔진 오류 심각도를 참조하세요.

속성

Class

SQL Server에서 반환한 오류의 심각도 수준을 가져옵니다.

LineNumber

오류를 포함하는 Transact-SQL 명령 배치나 저장 프로시저의 줄 번호를 가져옵니다.

Message

오류를 설명하는 텍스트를 가져옵니다.

Number

오류의 형식을 식별하는 번호를 가져옵니다.

Procedure

오류를 생성한 저장 프로시저 또는 RPC(원격 프로시저 호출)의 이름을 가져옵니다.

Server

오류를 생성한 SQL Server 인스턴스의 이름을 가져옵니다.

Source

오류를 생성한 공급자의 이름을 가져옵니다.

State

일부 오류 메시지는 데이터베이스 엔진코드의 여러 곳에서 발생할 수 있습니다. 예를 들어 1105 오류는 여러 가지 다른 조건에서 발생합니다. 오류를 발생시키는 각각의 특정 조건마다 고유한 상태 코드를 할당합니다.

메서드

ToString()

오류 메시지의 전체 텍스트를 가져옵니다.

적용 대상

추가 정보