SqlError 類別

定義

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

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

範例

以下範例顯示每個集合中的SqlError每個角色SqlErrorCollection

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時,該系統 SqlConnection 仍保持開放。 當嚴重程度達到 20 或以上時,伺服器通常會關閉 SqlConnection。 不過,使用者可以重新開啟連線並繼續使用。 在這兩種情況下,a SqlException 都是由執行指令的方法產生。

關於SQL Server產生錯誤的更多資訊,請參見資料庫引擎 Errors。 欲了解更多嚴重程度資訊,請參見 資料庫引擎 錯誤嚴重性

屬性

名稱 Description
Class

會取得 SQL Server 回傳錯誤的嚴重程度。

LineNumber

取得包含錯誤的 Transact-SQL 指令批次或儲存程序中的行號。

Message

會看到描述錯誤的文字。

Number

會得到一個編號,用來辨識錯誤的類型。

Procedure

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

Server

取得產生錯誤的 SQL Server 實例名稱。

Source

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

State

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

方法

名稱 Description
Equals(Object)

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

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前實例的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
ToString()

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

適用於

另請參閱