OLEDB 使用 DSN 连接到 Access 数据库

Posted

技术标签:

【中文标题】OLEDB 使用 DSN 连接到 Access 数据库【英文标题】:OLEDB connection to Access database using DSN 【发布时间】:2009-04-03 10:32:13 【问题描述】:

我想要使用 Dsn 的 oledb 连接。我使用了以下代码

'Dsn Create
 dbRegBase.RegisterDatabase("GEMINI", "Microsoft Access Driver (*.mdb)", True,DBQ=D:\Gemini\GEMINI\database\paints_01_2008-2009.mdb
Description=Greenchip Technologies ODBC Database File Path
OemToAnsi=No
UID=admin
PWD=XXXXXX

conection code
Provider=Microsoft.Jet.OLEDB.4.0;DBQ ='GEMINI';Persist Security Info=False;Jet OleDB:Database Password = XXXXXX

但错误来了,错误名称是“找不到可安装的 ISAM” 我做什么 。请告诉我。

【问题讨论】:

尽量不要在公共网站上发布密码... 【参考方案1】:

我的问题是为什么有人想使用 odbc?有许多网站展示了 oledb 与 odbc 的速度改进。此外,odbc 已经有一段时间没有更新了,而且非常有问题。

【讨论】:

哪个更好完全取决于您从哪个开发平台连接到数据库,以及您如何使用它。以及可用的驱动程序。而且,OLEDB 也存在问题,因为它的接口(ADO 和 ADO.NET)并非在所有情况下都可用。此外,对于 Access 文件,OLEDB 不能接受数据库密码,因此如果您有受密码保护的 MDB/ACCDB,则必须使用 ODBC。【参考方案2】:

是否需要是 OleDB 连接?

我尝试在我最近的应用程序中使用 OleDB,但惨遭失败,但使用 OdbcConnection 和 DSN 进行管理。

String query = "SELECT * FROM myTable"; //Complete this for your specific query
OdbcConnection con = new OdbcConnection("DSN=DatabaseName");
OdbcCommand com = new OdbcCommand("Query...", con);
try

    con.Open();
    OdbcReader reader = com.ExecuteReader();

    while(reader.Read())
    
        //Do things with the results
    

catch(Exception ex)

    //Exception handling

我认为比使用 OleDB 友好得多。

【讨论】:

您需要将 DatabaseName 添加到 DSN 并创建适当的查询来创建 OdbcCommand。您还需要一个 OdbcDataReader 来读取您查询的内容。

以上是关于OLEDB 使用 DSN 连接到 Access 数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ASP.Net 数据源通过 ODBC DSN 连接到 Access 数据库?

从MS-Access连接到sql server而不创建DSN

使用 OleDb 从 Access Forms 连接到 SQL Server

使用 DSN ODBC 2 连接到 ONLINE MySQL 数据库

手动关闭 ODBC DSN 连接

将 sqlalchemy 连接到 MS Access