Error message when you try to use the OleDbConnection.Open method: "The .Net Data OLE DB Provider(System.Data.Oledb) does not support the MSDASQL Provider, Microsoft OLE DB Provider for ODBC Drivers." (310374)



The information in this article applies to:

  • Microsoft ADO.NET (included with the .NET Framework)
  • Microsoft ADO.Net 2.0

This article was previously published under Q310374
This article refers to the following Microsoft .NET Framework Class Library namespace:
  • System.Data.Oledb

SYMPTOMS

The OleDbConnection class specifically prohibits you from using MSDASQL or data source names (DSNs) when you connect to your data sources in ADO.NET. If you try to use MSDASQL or DSNs, you receive the following error message:
An unhandled exception of type 'System.NotSupportedException' occurred in systemldata.dll. Additional information: The .Net Data OLE DB Provider(System.Data.Oledb) does not support the MSDASQL Provider, Microsoft OLE DB Provider for ODBC Drivers.

RESOLUTION

To resolve this problem, use an OLE DB Provider rather than an ODBC driver. Alternately, download, reference, and use the ODBC Managed Provider.

STATUS

This behavior is by design.

MORE INFORMATION

The ODBC .NET Data Provider is an add-on component to the Microsoft .NET Framework Software Development Kit (SDK). The ODBC .NET Data Provider provides access to native ODBC drivers in the same way that the OLE DB .NET Data Provider provides access to native OLE DB providers.

The ODBC .NET Data Provider should work with most ODBC drivers. However, only the following drivers have been tested with and are known to be compatible with the ODBC .NET Data Provider:
  • Microsoft SQL ODBC Driver
  • Microsoft ODBC Driver for Oracle
  • Microsoft Jet ODBC Driver
The ODBC .NET Data Provider also requires that you install Microsoft Data Access Components (MDAC) version 2.6 or later on the computer where the Web release will be downloaded. You can download the latest version of MDAC from the following Microsoft Web site:

Steps to Reproduce the Behavior

  1. Start Microsoft Visual Studio .NET.
  2. Create a new Visual Basic .NET Windows Application project. Form1 is added to the project by default.
  3. Add a Button control to Form1.
  4. Switch to Code view.
  5. At the top of the Code window, add the following code:
    Imports System.Data.Oledb
    					
  6. Add the following code to the click event handler.

    Note You must change User ID <username> and password =<strong password> to the correct values before you run this code. Make sure that User ID has the appropriate permissions to perform this operation on the database.
         Dim myConnString As String = _
               "Provider=MSDASQL;Data Source=Witster;User Id=<username>;Password=<strong password>;" & _
               "Initial Catalog=Northwind;"
         Dim myConnection As New OleDbConnection(myConnString)
         myConnection.Open()
         MessageBox.Show("ServerVersion: " + myConnection.ServerVersion + ControlChars.Cr + _
                         "DataSource: " + myConnection.DataSource.ToString())
         myConnection.Close()
    					
  7. Press the F5 key to compile and run the application. You receive the above-mentioned error message.
  8. To resolve this problem, change the provider to SQLOLEDB.

REFERENCES

You can download the ODBC Provider from the following Microsoft Web site: For additional information ODBC .NET Data Provider, click the article number below to view the article in the Microsoft Knowledge Base:

310985 HOW TO: Use the ODBC .NET Managed Provider in Visual Basic .NET and Connection Strings


Modification Type:MinorLast Reviewed:3/9/2006
Keywords:kbprb kbSystemData KB310374 kbAudDeveloper