SqlError 類別

定義

收集與 SQL Server 所傳回之警告或錯誤相關的資訊。

public ref class SqlError sealed
public sealed class SqlError
[System.Serializable]
public sealed class SqlError
type SqlError = class
[<System.Serializable>]
type SqlError = class
Public NotInheritable Class SqlError
繼承
SqlError
屬性

範例

下列範例會顯示集合內的每一個SqlErrorSqlErrorCollection

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();
}
Public Sub ShowSqlException(ByVal connectionString As String)
    Dim queryString As String = "EXECUTE NonExistantStoredProcedure"

    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)

        Try
            command.Connection.Open()
            command.ExecuteNonQuery()

        Catch ex As SqlException
            DisplaySqlErrors(ex)
        End Try
    End Using
End Sub

Private Sub DisplaySqlErrors(ByVal exception As SqlException)
    Dim i As Integer

    For i = 0 To exception.Errors.Count - 1
        Console.WriteLine("Index #" & i & ControlChars.NewLine & _
            "Error: " & exception.Errors(i).ToString() & ControlChars.NewLine)
    Next i
    Console.ReadLine()
End Sub

備註

發生錯誤時,.NET Framework Data Provider for SQL Server 建立這個類別。 的 SqlError 實例會由 SqlErrorCollection建立及管理,接著由 SqlException 類別建立。

安全性層級 10 或以下的訊息是告知性的訊息,用以指出問題產生的原因是使用者輸入了錯誤的資訊。 從 11 到 16 的嚴重性層級是由用戶產生,而且可由使用者更正。 17 到 25 的嚴重性層級表示軟體或硬體錯誤。 當發生層級 17、18 或 19 錯誤時,您可以繼續運作,雖然您可能無法執行特定的語句。

當嚴重性層級為 19 或低於 19 時,SqlConnection 仍保持開啟。 發生 20 或以上的安全性層級時,伺服器通常會關閉 SqlConnection。 但是,使用者可以再次開啟連線,然後繼續進行。 在這兩個情況中,SqlException 皆由執行該命令的方法所產生。

如需 SQL Server 產生之錯誤的詳細資訊,請參閱 Database Engine 錯誤。 如需嚴重性層級的詳細資訊,請參閱 Database Engine 錯誤嚴重性

屬性

Class

取得從 SQL Server 傳回的錯誤之嚴重性層級。

LineNumber

取得 Transact-SQL 命令批次內的行號或包含錯誤的預存程序。

Message

取得描述錯誤的文字。

Number

取得識別錯誤類型的值。

Procedure

取得產生錯誤之預存程序或遠端程序呼叫 (RPC) 的名稱。

Server

取得產生錯誤的 SQL Server 的執行個體名稱。

Source

取得產生錯誤之提供者的名稱。

State

取得錯誤的唯一狀態代碼。

方法

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

取得錯誤訊息的完整文字。

適用於

另請參閱