SqlException.Class 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
.NET Framework Data Provider for SQL Server에서 반환한 오류의 심각도 수준을 가져옵니다.
public:
property System::Byte Class { System::Byte get(); };
public byte Class { get; }
member this.Class : byte
Public ReadOnly Property Class As Byte
속성 값
오류의 심각도 수준을 나타내는 1부터 25까지의 값입니다.
예제
다음 예제에서는 각 SqlError 내에서 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
설명
심각도 수준이 10 이하인 메시지는 정보를 제공하고 사용자가 입력한 정보의 실수로 인한 문제를 나타냅니다. 11에서 16까지의 심각도 수준은 사용자가 생성하며 사용자가 수정할 수 있습니다. 17에서 25까지의 심각도는 소프트웨어나 하드웨어 오류를 나타냅니다. 수준 17, 18 또는 19 오류가 발생하면 특정 문을 실행하지 못할 수도 있지만 작업을 계속할 수 있습니다.
SqlConnection 심각도 수준이 19 이하인 경우 는 열린 상태로 유지됩니다. 심각도 수준이 20 이상인 경우 서버는 일반적으로 를 닫습니다 SqlConnection. 그러나 사용자는 연결을 다시 열고 계속할 수 있습니다. 두 경우 모두 명령을 SqlException 실행하는 메서드에 의해 이 생성됩니다.
SQL Server 보낸 경고 및 정보 메시지에 대한 자세한 내용은 SQL Server 설명서의 문제 해결 섹션을 참조하세요.
속성에서 첫 번째 SqlError 의 Class 속성에 대한 래퍼입니다Errors.
적용 대상
추가 정보
.NET