You receive an exception when running .NET application on a computer that does not have Microsoft Data Access Components (MDAC) installed (815117)



The information in this article applies to:

  • Microsoft ADO.NET (included with the .NET Framework) 1.0
  • Microsoft ADO.NET (included with the .NET Framework 1.1)
  • Microsoft ADO.Net 2.0
  • ActiveX Data Objects (ADO) 2.7
  • Microsoft Visual Basic .NET (2002)
  • Microsoft Visual Basic .NET (2003)
  • Microsoft Visual C# .NET (2002)
  • Microsoft Visual C# .NET (2003)

SYMPTOMS

You deploy a Microsoft .NET Framework application that accesses a database on a computer. The computer only has the .NET Framework Redistributable package installed. When you run the application, you may receive the following error message:
An unhandled exception has occurred in your application. If you click Continue, the application will ignore this error and attempt to continue. If you click Quit, the application will be shut down immediately.
QueryInterface for interface ADODB._Command failed.

CAUSE

The problem occurs because Microsoft Data Access Components (MDAC) is not installed on the computer. The .NET application uses MDAC to access the data from the database.

RESOLUTION

To resolve this problem, install MDAC on the computer. You can download MDAC from the following Microsoft Developer Network (MSDN) Web site:

STATUS

This behavior is by design.

MORE INFORMATION

Steps to reproduce the problem

  1. Create a new Visual Basic .NET or Visual C# .NET Console Application project.
  2. On the Project menu, click Add Reference.
  3. On the .NET tab, double-click adodb in the Components Name list.
  4. Replace the existing code with the following code:

    Visual Basic .NET code

    Module Module1
    
       Sub Main()
          Dim cnPubs As ADODB.Connection = New ADODB.ConnectionClass()
          Dim rstblAuthors As ADODB.Recordset = New ADODB.RecordsetClass()
       End Sub
    End Module
    

    Visual C# .NET code

    using System;
    
    namespace MyTestApplication
    {
    	class Class1
    	{
          [STAThread]
          static void Main(string[] args)
          {
             ADODB.Connection cnPubs = new ADODB.ConnectionClass();
             ADODB.Recordset rstblAuthors = new ADODB.RecordsetClass();
          }
    	}
    }
  5. On the Build menu, click Build Solution.
  6. On a test computer, install only the .NET Framework Redistributable package (dotnetfx.exe). Verify that MDAC is not installed on the test computer.
  7. Copy the Windows Application project that you created to the test computer.
  8. Run the application. You receive the error message that is described in the "Symptoms" section of this article.

REFERENCES

For more information, click the following article number to view the article in the Microsoft Knowledge Base:

315974 How to use ADO recordsets in Visual Basic .NET


Modification Type:MajorLast Reviewed:3/13/2006
Keywords:kbDatabase kbDeployment kbsetup kbprb KB815117 kbAudDeveloper