現在オフラインです。再接続するためにインターネットの接続を待っています

Visual Basic .NET で ADO.NET を使用して基になるプロバイダ エラーを取得する方法

この記事は、以前は次の ID で公開されていました: JP308043
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
Microsoft Visual C# .NET については、次の資料を参照してください。308650
Microsoft Visual C++ については、次の資料を参照してください。308651
Microsoft Visual Basic 6.0 については、次の資料を参照してください。167957

この資料では、次の Microsoft .NET Framework クラス ライブラリの名前空間を参照しています。
  • System.Data.OleDb

この資料の内容

概要
マネージ プロバイダでいくつかの例外が発生することがあります。その原因に関する詳細情報を取得するには、プロバイダ固有のエラー情報にアクセスする必要があります。この資料では、Visual Basic .NET で ADO.NET を使用する場合に、基になるプロバイダのエラーを取得する方法について説明します。

先頭に戻る

必要条件

必要なハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および Service Pack は次のとおりです。
  • Microsoft .NET Framework
  • Microsoft Visual Basic .NET
この資料は、次のトピックについて詳しい知識のあるユーザーを対象としています。
  • 例外
  • Microsoft OLE DB
  • エラー処理
先頭に戻る

基になるプロバイダのエラーを取得する手順

例外の原因についての詳細な情報を取得するには、try ブロックと catch ブロックでコードをラップして、例外を受け取り、OleDbException クラスから Errors コレクションを処理します。
  1. Visual Studio .NET を起動し、Visual Basic .NET で新しい Windows アプリケーションを作成します。デフォルトで Form1 が作成されます。
  2. コード エディタで Form1.vb を開き、以下のコードをフォームの先頭にコピーします。
    Imports System.Data.OleDb					
  3. 以下のコードをコピーして、Form1 の Load イベントに貼り付けます。
    Dim ex As OleDbExceptionDim cn As OleDbConnection = New OleDbConnection("Provider=SQLOLEDB.1;Data Source=MyWrongServerName")Try    cn.Open()Catch ex    Dim i As Integer    For i = 0 To ex.Errors.Count - 1        MessageBox.Show("Index #" + i.ToString() + ControlChars.Cr _           + "Message: " + ex.Errors(i).Message + ControlChars.Cr _           + "Native: " + ex.Errors(i).NativeError.ToString() + ControlChars.Cr _           + "Source: " + ex.Errors(i).Source + ControlChars.Cr _           + "SQL: " + ex.Errors(i).SQLState + ControlChars.Cr)    Next iEnd Try					
  4. アプリケーションを実行します。10 ~ 15 秒後に、メッセージ ボックスが表示されます。
先頭に戻る

トラブルシューティング

"MyWrongServerName" という名前のサーバーを使用している場合は、エラーが表示されないことがあります。

先頭に戻る
関連情報
.NET のマネージ プロバイダの関連情報については、以下の MSDN Web サイトを参照してください。先頭に戻る
プロパティ

文書番号:308043 - 最終更新日: 02/24/2014 15:36:47 - リビジョン: 2.1

Microsoft ADO.NET (included with the .NET Framework), Microsoft ADO.NET 1.1, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition

  • kbnosurvey kbarchive kbhowtomaster kbsystemdata KB308043
フィードバック