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

文書翻訳 文書翻訳
文書番号: 308043 - 対象製品
この記事は、以前は次の ID で公開されていました: JP308043
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
すべて展開する | すべて折りたたむ

目次

概要

マネージ プロバイダでいくつかの例外が発生することがあります。その原因に関する詳細情報を取得するには、プロバイダ固有のエラー情報にアクセスする必要があります。この資料では、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 OleDbException
    Dim 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 i
    End Try
    					
  4. アプリケーションを実行します。10 〜 15 秒後に、メッセージ ボックスが表示されます。

トラブルシューティング

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


関連情報

.NET のマネージ プロバイダの関連情報については、以下の MSDN Web サイトを参照してください。
Inside .NET Managed Providers
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndive/html/data010112001.asp

プロパティ

文書番号: 308043 - 最終更新日: 2014年2月24日 - リビジョン: 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
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com