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

注釈

このクラスは、エラーが発生したときにSQL Server用の .NET Framework Data Providerによって作成されます。 SqlErrorのインスタンスは、SqlErrorCollectionによって作成および管理され、SqlException クラスによって作成されます。

重大度レベルが 10 以下のメッセージは情報であり、ユーザーが入力した情報の誤りによって発生した問題を示します。 11 から 16 までの重大度レベルはユーザーによって生成され、ユーザーが修正できます。 重大度レベルが 17 ~ 25 の場合は、ソフトウェアまたはハードウェアのエラーを示します。 レベル 17、18、または 19 のエラーが発生した場合は、特定のステートメントを実行できない場合がありますが、作業を続行できます。

重大度レベルが 19 以下の場合、 SqlConnection は開いたままです。 重大度レベルが 20 以上の場合、サーバーは通常、 SqlConnectionを閉じます。 ただし、ユーザーは接続を再度開いて続行できます。 どちらの場合も、コマンドを実行するメソッドによって SqlException が生成されます。

SQL Serverによって生成されるエラーの詳細については、「データベース エンジン Errors」を参照してください。 重大度レベルの詳細については、「データベース エンジン エラーの重大度」を参照してください。

プロパティ

名前 説明
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()

エラー メッセージの完全なテキストを取得します。

適用対象

こちらもご覧ください