次の方法で共有


OdbcException クラス

定義

ODBC データ ソースから警告またはエラーが返された場合に生成される例外。 このクラスは継承できません。

public ref class OdbcException sealed : System::Data::Common::DbException
public ref class OdbcException sealed : SystemException
public sealed class OdbcException : System.Data.Common.DbException
[System.Serializable]
public sealed class OdbcException : SystemException
[System.Serializable]
public sealed class OdbcException : System.Data.Common.DbException
type OdbcException = class
    inherit DbException
[<System.Serializable>]
type OdbcException = class
    inherit SystemException
[<System.Serializable>]
type OdbcException = class
    inherit DbException
Public NotInheritable Class OdbcException
Inherits DbException
Public NotInheritable Class OdbcException
Inherits SystemException
継承
継承
属性

次の例では、データ ソースがないため に を OdbcException 生成し、例外を表示します。

public void ShowOdbcException()
{
   string mySelectQuery = "SELECT column1 FROM table1";
   OdbcConnection myConnection =
      new OdbcConnection("DRIVER={SQL Server};SERVER=MyServer;Trusted_connection=yes;DATABASE=northwind;");
   OdbcCommand myCommand = new OdbcCommand(mySelectQuery,myConnection);
   try
   {
      myCommand.Connection.Open();
   }
   catch (OdbcException e)
   {
     string errorMessages = "";

     for (int i=0; i < e.Errors.Count; i++)
     {
         errorMessages += "Index #" + i + "\n" +
                          "Message: " + e.Errors[i].Message + "\n" +
                          "NativeError: " + e.Errors[i].NativeError.ToString() + "\n" +
                          "Source: " + e.Errors[i].Source + "\n" +
                          "SQL: " + e.Errors[i].SQLState + "\n";
     }

     System.Diagnostics.EventLog log = new System.Diagnostics.EventLog();
     log.Source = "My Application";
     log.WriteEntry(errorMessages);
     Console.WriteLine("An exception occurred. Please contact your system administrator.");
   }
}
Public Sub ShowOdbcException()
    Dim mySelectQuery As String = "SELECT column1 FROM table1"
    Dim myConnection As New OdbcConnection _
       ("DRIVER={SQL Server};SERVER=MyServer;Trusted_connection=yes;DATABASE=northwind;")
    Dim myCommand As New OdbcCommand(mySelectQuery, myConnection)
    Try
        myCommand.Connection.Open()
    Catch e As OdbcException
        Dim errorMessages As String
        Dim i As Integer

        For i = 0 To e.Errors.Count - 1
            errorMessages += "Index #" & i.ToString() & ControlChars.Cr _
                           & "Message: " & e.Errors(i).Message & ControlChars.Cr _
                           & "NativeError: " & e.Errors(i).NativeError.ToString() & ControlChars.Cr _
                           & "Source: " & e.Errors(i).Source & ControlChars.Cr _
                           & "SQL: " & e.Errors(i).SQLState & ControlChars.Cr
        Next i

       Dim log As New System.Diagnostics.EventLog()
       log.Source = "My Application"
       log.WriteEntry(errorMessages)
       Console.WriteLine("An exception occurred. Please contact your system administrator.")
    End Try
End Sub

注釈

このクラスは、 がサーバーによって生成されたエラーを検出するたびに OdbcDataAdapter 作成されます (クライアント側エラーは標準の共通言語ランタイム例外として発生します)。 常に、 の少なくとも 1 つのインスタンスが OdbcError含まれています。

エラーの重大度レベルが高すぎる場合、サーバーは OdbcConnection を閉じることがあります。 ただし、ユーザーは接続を再び開き、続行できます。

.NET Framework データ プロバイダーの例外処理に関する一般的な情報については、「」を参照してくださいSqlException

プロパティ

BatchCommand

の実行時にこれが DbException スローされた場合は、 DbBatch例外をトリガーした特定 DbBatchCommand の を参照します。

(継承元 DbException)
Data

例外に関する追加のユーザー定義情報を提供する、キーと値のペアのコレクションを取得します。

(継承元 Exception)
DbBatchCommand

派生クラスでオーバーライドされた場合、 の実行時にこれが DbException スローされた場合は DbBatch、例外をトリガーした特定 DbBatchCommand の を参照します。

(継承元 DbException)
ErrorCode

エラーの HRESULT を取得します。

(継承元 ExternalException)
Errors

.NET Framework ODBC 用データ プロバイダーが生成する例外の詳細情報を提供する、1 つ以上の OdbcError オブジェクトのコレクションを取得します。

HelpLink

この例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。

(継承元 Exception)
HResult

特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。

(継承元 Exception)
InnerException

現在の例外の原因となる Exception インスタンスを取得します。

(継承元 Exception)
IsTransient

この DbException によって表されるエラーが一時的なエラーである可能性があるかどうか、つまり他に何も変更せずにトリガー操作を再試行しても成功する可能性があるかどうかを示します。

(継承元 DbException)
Message

現在の例外を説明するメッセージを取得します。

Message

現在の例外を説明するメッセージを取得します。

(継承元 Exception)
Source

エラーを生成した ODBC ドライバーの名前を取得します。

SqlState

それをサポートしているデータベース プロバイダーの場合、データベース操作の成功または失敗を示す標準的な SQL の 5 文字のリターン コードが含まれます。 最初の 2 文字は、リターン コードのクラス (エラー、成功など) を表します。最後の 3 文字はサブクラスを表し、データベースに移植可能な方法でエラー シナリオを検出できます。

それをサポートしていないデータベース プロバイダーの場合、または該当しないエラー シナリオの場合は、null が含まれます。

(継承元 DbException)
StackTrace

呼び出し履歴で直前のフレームの文字列形式を取得します。

(継承元 Exception)
TargetSite

現在の例外がスローされたメソッドを取得します。

(継承元 Exception)

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetBaseException()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の根本原因である Exception を返します。

(継承元 Exception)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetObjectData(SerializationInfo, StreamingContext)
古い.

このメンバーは GetObjectData(SerializationInfo, StreamingContext) をオーバーライドします。

GetType()

現在のインスタンスのランタイム型を取得します。

(継承元 Exception)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

エラーの HRESULT が格納された文字列を返します。

(継承元 ExternalException)
ToString()

現在の例外の文字列形式を作成して返します。

(継承元 Exception)

イベント

SerializeObjectState
古い.

例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。

(継承元 Exception)

適用対象

こちらもご覧ください