SqlError 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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() |
오류 메시지의 전체 텍스트를 가져옵니다. |