ADODB 连接 - 错误:找不到数据源名称,并且未指定默认驱动程序

本文关键字:未指定 驱动程序 默认 连接 错误 数据源 找不到 ADODB | 更新日期: 2023-09-27 18:34:17

过去使用 ODBC 连接到 Access DB 时,我从未遇到过问题。 现在我正在尝试使用 ADO/OLEDB 进行连接,但收到此错误(无 DSN 连接):

System.Runtime.InteropServices.COMException: [Microsoft][ODBC 驱动程序管理器] 找不到数据源名称,并且未指定默认驱动程序。

我不再使用 ODBC。 正如我所说,我正在使用 ADO/OLEDB。 这是我的代码:

var conString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:''test.mdb";
// I've also tried the one below, same error
// var conString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:''test.mdb";
var con = new ADODB.Connection( conString );
// bombs here
con.Open();

我已经查看了几乎所有的Google和该网站有关MS Access此错误的所有内容。 我尝试将我的项目改回 32 位 (x86)。 似乎什么都不起作用。

有人有什么想法吗?

更新:我需要 ADODB 连接,因为我使用的是需要 ADODB 连接的 ADOX。

var cat = new Catalog();
// this line below will bomb for ODBC or OLEDB
cat.ActiveConnection = con;

ADODB 连接 - 错误:找不到数据源名称,并且未指定默认驱动程序

尝试建立 OLEDB 连接。另请提及输出。

Imports System.Data.OleDb
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim connetionString As String
    Dim cnn As OleDbConnection
    connetionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=yourdatabasename.mdb;"
    cnn = New OleDbConnection(connetionString)
    Try
        cnn.Open()
        MsgBox("Connection Open ! ")
        cnn.Close()
    Catch ex As Exception
        MsgBox("Can not open connection ! ")
    End Try
End Sub
End Class

您需要在建立连接时提供特定的驱动程序信息。按照 下一个代码 。

Imports System.Data.Odbc
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim connetionString As String
    Dim cnn As OdbcConnection
    connetionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=yourdatabasename.mdb;"
    cnn = New OdbcConnection(connetionString)
    Try
        cnn.Open()
        MsgBox("Connection Open ! ")
        cnn.Close()
    Catch ex As Exception
        MsgBox("Can not open connection ! ")
    End Try
End Sub
End Class

您必须安装需要连接的OLEDB驱动程序:

连接字符串:

<add name="ConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source d:''test.mdb;Persist Security Info=False;" />

驱动程序可以从以下链接安装:http://www.microsoft.com/en-in/download/details.aspx?id=13255

我只是在努力解决这个问题,我找到了一个对我有用的奇怪解决方案:

        // NOTE: this way doesn't work.  It throws an error:
        //  System.RuntimeInteropServices.COMException (0x80004005): [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified at ADODB.Connection.Open
        //_connection = new Connection(_connectionString);
        //_connection.Open();
        // This way *does* work.
        _connection = new Connection();
        _connection.Open(_connectionString, null, null, 0);
相关文章: