SqlExceptionとは? わかりやすく解説

SqlException クラス

SQL Server が警告またはエラーを返したときにスローされる例外。このクラスは継承できません。

名前空間: System.Data.SqlClient
アセンブリ: System.Data (system.data.dll 内)
構文構文

<SerializableAttribute> _
Public NotInheritable Class
 SqlException
    Inherits DbException
[SerializableAttribute] 
public sealed class SqlException : DbException
[SerializableAttribute] 
public ref class SqlException sealed : public
 DbException
/** @attribute SerializableAttribute() */ 
public final class SqlException extends DbException
SerializableAttribute 
public final class SqlException extends
 DbException
解説解説

このクラスは、サーバーが生成したエラーを .NET Framework SQL Server 用データ プロバイダが検出するたびに作成されます。クライアント側のエラーは、標準共通言語ランタイム例外としてスローされます。SqlException には、常に、SqlError のインスタンスが少なくとも 1 つ含まれています。

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

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

SQL Server が送信する警告メッセージと情報メッセージについては、『SQL Server Books Online』の「トラブルシューティング」を参照してください。SqlException クラスは、SQL Server の重大度に割り当てられます。

使用例使用例

SqlException を作成し、例外を表示する例を次に示します。

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 _
                    & "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
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"
 +
                    "LineNumber: " + ex.Errors[i].LineNumber + "\n"
 +
                    "Source: " + ex.Errors[i].Source + "\n" +
                    "Procedure: " + ex.Errors[i].Procedure + "\n");
            }
            Console.WriteLine(errorMessages.ToString());
        }
    }
}
継承階層継承階層
System.Object
   System.Exception
     System.SystemException
       System.Runtime.InteropServices.ExternalException
         System.Data.Common.DbException
          System.Data.SqlClient.SqlException
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SqlException メンバ
System.Data.SqlClient 名前空間
SqlError クラス
SqlErrorCollection クラス

SqlException プロパティ


パブリック プロパティパブリック プロパティ

プロテクト プロパティプロテクト プロパティ
  名前 説明
プロテクト プロパティ HResult  特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。 ( Exception から継承されます。)
参照参照

関連項目

SqlException クラス
System.Data.SqlClient 名前空間
SqlError クラス
SqlErrorCollection クラス

SqlException メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
参照参照

関連項目

SqlException クラス
System.Data.SqlClient 名前空間
SqlError クラス
SqlErrorCollection クラス

SqlException メンバ

SQL Server が警告またはエラーを返したときにスローされる例外。このクラスは継承できません。

SqlException データ型で公開されるメンバを以下の表に示します。


パブリック プロパティパブリック プロパティ
プロテクト プロパティプロテクト プロパティ
  名前 説明
プロテクト プロパティ HResult  特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。(Exception から継承されます。)
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

SqlException クラス
System.Data.SqlClient 名前空間
SqlError クラス
SqlErrorCollection クラス



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「SqlException」の関連用語

SqlExceptionのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



SqlExceptionのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS