How To Obtain Underlying Provider Errors by Using ADO.NET in Visual Basic .NET

Article translations Article translations
Article ID: 308043 - View products that this article applies to.
This article was previously published under Q308043
This article has been archived. It is offered "as is" and will no longer be updated.
Expand all | Collapse all

On This Page


Managed providers can raise several exceptions. To obtain more detailed information about the cause, you need access to provider-specific error information. This article dicusses how to obtain the underlying provider errors when using ADO.NET in Visual Basic .NET.


The following list outlines the recommended hardware, software, network infrastructure, and service packs that you need:
  • Microsoft .NET Framework
  • Microsoft Visual Basic .NET
This article assumes that you are familiar with the following topics:
  • Exceptions
  • Microsoft OLE DB
  • Error handling

Steps to Obtain Underlying Provider Errors

To obtain more detailed information about the cause of an exception, wrap your code in a try-catch block, catch the exception, and process the Errors collection from the OleDbException class.
  1. Start Microsoft Visual Studio .NET, and then create a new Windows Application project in Visual Basic .NET. Form1 is created by default.
  2. Open Form1.vb in code, copy the following code, and paste the code at the beginning of the form:
    Imports System.Data.OleDb
  3. Copy the following code into the Form1 Load event:
    Dim ex As OleDbException
    Dim cn As OleDbConnection = New OleDbConnection("Provider=SQLOLEDB.1;Data Source=MyWrongServerName")
    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. Run the application. A message box should appear after 10 to 15 seconds.


If you have a server named "MyWrongServerName," you may not receive an error.


For more information on .NET managed providers, refer to the following MSDN Web site:
Inside .NET Managed Providers


Article ID: 308043 - Last Review: February 27, 2014 - Revision: 2.3
  • 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

Contact us for more help

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