c# - 连接到 MS Access(accdb) 数据库的问题
问题描述
我需要在我的 C# 应用程序中使用 OdbcConnection 类连接到 MS Access 数据库(*.accdb)。
以下是我尝试过的代码:
string connetionString = "Driver={Microsoft Access Driver (*.accdb)};DBQ=C:\\Temp\\Database4.accdb";
OdbcConnection myConnection = new OdbcConnection(connetionString);
try
{
myConnection.Open();
myConnection.Close();
}
catch (Exception ex)
{
}
但它在 myConnection.Open() 调用中出现以下异常。
“错误 [IM002] [Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序”
但是如果我使用如下连接字符串,上面的代码适用于 .mdb 文件:
string connetionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\Temp\\Database4.mdb";
但我的要求是连接到 .accdb 文件。
知道我的代码或连接字符串格式有什么问题吗?
解决方案
我使用以下代码让它工作:
const string connetionString = @"Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\Temp\Database4.accdb";
OdbcConnection myConnection = new OdbcConnection(connetionString);
myConnection.Open();
myConnection.Close();
Console.WriteLine("Done.");
Console.ReadLine();
但它仅适用于 x86 配置,不适用于 x64 配置。对于 x64 配置,我们必须使用 OleDbConnection 类。
谢谢你们..
推荐阅读
- elasticsearch - Kibana - 分组并获取每个组的最新记录
- java - 用 application.properties 覆盖默认的 Spring-Boot application.properties
- testing - 如何在 JMeter 中仅使用包含 20 个用户的 CSV 文件中的前 5 个用户?
- tensorflow - 找到我需要为 lstm 构建自定义 tflite 的标头
- php - PDO:: fetch_assoc 和 fetch_object 区别 & 何时最好使用
- verification - uppal中简单的基本验证问题
- python-3.x - 'Shift' + 'enter' 仅在突出显示文本行时有效。我如何更改它,所以我不必突出显示?
- bootstrap-4 - 工具提示未在 ng-bootstrap 中显示
- node.js - 如何从 NodeJS 触发 Angular 中的服务
- c++ - 交叉编译错误 Visual Studio C++