gpt4 book ai didi

c# - 为 Access mdb 文件创建 OdbcConnection 的 ConnectionString 是什么

转载 作者:行者123 更新时间:2023-11-30 16:20:11 25 4
gpt4 key购买 nike

我想使用 Odbc 从 C# 连接到 Access MDB 文件。

当我尝试执行时

OdbcConnection con = new OdbcConnection(
"Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\\temp\\test.mdb;");

我得到以下异常:

exc {System.Data.Odbc.OdbcException (0x80131937): ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)
at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.Odbc.OdbcConnection.Open()
:

这里有什么问题?它提示“未找到数据源名称且未指定默认驱动程序”,但我指定了一个驱动程序?

我在此处的帮助下获得了连接字符串 http://www.connectionstrings.com/access#net-framework-data-provider-for-odbc

最佳答案

哦,我刚刚找到问题的根源。我认为其他人也可能遇到它:

我正在编写一个 .net 应用程序,当操作系统是 32 位 Windows 时,它在 32 位 .net 虚拟机中运行,当操作系统是 64 位 Windows 时,它在 64 位虚拟机中运行。在 syswow 和 system32 中使用 2 odbcad32.exe(是的,尽管 system32 中的那个是 64 位的,但它们都被命名为 odbcad32.exe,是的,这也是正确的)我发现我只为 odbc32 位安装了 Access MdB 驱动程序。因此,当我的应用程序在 64 位 Windows 上运行时,.net 想要使用 64 位版本的 odbc 但找不到驱动程序。

好的,所以现在我需要一个 64 位 Access 驱动程序,根据此 enter link description here 不存在该驱动程序.好吧,这个帖子是旧的,所以也许现在有一个?

当我将我的项目设置中的 Plattform 强制为 x86 时,它可以工作。当然,这也强制我的应用程序在 32 位 .net 虚拟机中运行。

关于c# - 为 Access mdb 文件创建 OdbcConnection 的 ConnectionString 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14567220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com