从 64 位应用读取 64 位 OS 的 mdb 文件时,未找到数据源名称且未指定默认驱动程序:
Data source name not found and no default driver specified when reading mdb file in 64 bits OS from 64 bits app:
我在 64 位 Windows 系统(Windows Server 2012)中有一个 ASP.NET MVC 应用程序(64 位)运行ning。
我的 web 应用程序需要读取 mdb 数据库,然后我创建了下一个代码:
using (var myConnection = new OdbcConnection())
{
try
{
string myConnectionString = @"Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + fileNameWithPath + ";Persist Security Info=True";
myConnection.ConnectionString = myConnectionString;
myConnection.Open();
OdbcCommand cmd = myConnection.CreateCommand();
cmd.CommandText = "SELECT * FROM myTable";
OdbcDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
// Load the result into a DataTable
myDataTable = new DataTable();
myDataTable.Load(reader);
}
catch (Exception exception)
{
//nexy exception is caught here: "ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified"
}
finally
{
myConnection.Close();
}
}
其中fileNameWithPath是mdb文件的路径。
当我执行上面的代码时,我在行中遇到了下一个恼人的异常
myConnection.Open();
:
ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not
found and no default driver specified
我检查了服务器,它安装了有关 ODBC 驱动程序的下一个文件:
文件夹C:\Windows\System32
下的文件odbcad32.exe
文件夹C:\Windows\SysWOW64
下的文件odbcad32.exe
我的问题是:我的服务器设置是否正确?我真的安装了 64 位版本的 ODBC 吗?
更重要的是:我可以 运行 在具有这种配置的 x64 服务器中 x64 应用程序 吗?否则,还有其他选择吗?值得一提的是:
- 我不允许在服务器中安装其他软件
- Web 应用程序必须是 64 位
提前致谢。
要使用 x32 位版本的 Access 数据库引擎,您需要在该计算机上安装 x32 位版本的数据库引擎。
要使用 x64 位版本的 Access 数据库引擎,则需要安装 x64 位版本的 Access 数据库引擎。
嘿,如果你需要读取 oracle 数据库,那么你瞧,你需要安装 oracle 数据库引擎来读取驻留在磁盘驱动器上的 oracle 文件。
如果你不能安装任何额外的软件,比如 oracle 来读取 oracle 文件,或者 SQL server 来读取 sql 服务器文件,或者在这种情况下是 Access,那么你就是鸭子肥皂.确实,要阅读 PDF 文件,您需要安装一些 PDF 文件软件。
因此,除非您可以解决不允许在您的服务器上安装适当软件的问题,否则您将无法读取此类软件使用的给定文件——这适用于几乎所有软件系统- 您需要在该服务器上安装适当的软件才能使用此类文件。
因此确实存在 x32 和 x64 位版本的 Access 数据库引擎 (ACE),除非您被允许安装此类软件,否则您无法读取和使用此类数据。
所以请记住,在开发软件时,如果您想打开 word 文件或 pdf 文件或类似任何软件系统,您将需要安装 apocopate 软件才能使用此类文件 – Access 也不例外.如果您需要打开一个 powerpoint 文件,那么很明显您需要在该计算机上安装 powerpoint 软件。
因此您需要在该服务器上获取并安装 x64 位版本的 Access 数据库引擎。既然你注意到你不能安装任何软件,那么你就不太可能实现你的目标。
我通过在 IIS 应用程序池的高级设置中启用 32 位应用程序解决了一个非常相似的问题
我在 64 位 Windows 系统(Windows Server 2012)中有一个 ASP.NET MVC 应用程序(64 位)运行ning。
我的 web 应用程序需要读取 mdb 数据库,然后我创建了下一个代码:
using (var myConnection = new OdbcConnection())
{
try
{
string myConnectionString = @"Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + fileNameWithPath + ";Persist Security Info=True";
myConnection.ConnectionString = myConnectionString;
myConnection.Open();
OdbcCommand cmd = myConnection.CreateCommand();
cmd.CommandText = "SELECT * FROM myTable";
OdbcDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
// Load the result into a DataTable
myDataTable = new DataTable();
myDataTable.Load(reader);
}
catch (Exception exception)
{
//nexy exception is caught here: "ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified"
}
finally
{
myConnection.Close();
}
}
其中fileNameWithPath是mdb文件的路径。
当我执行上面的代码时,我在行中遇到了下一个恼人的异常
myConnection.Open();
:
ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
我检查了服务器,它安装了有关 ODBC 驱动程序的下一个文件:
文件夹C:\Windows\System32
下的文件odbcad32.exe文件夹C:\Windows\SysWOW64
下的文件odbcad32.exe我的问题是:我的服务器设置是否正确?我真的安装了 64 位版本的 ODBC 吗?
更重要的是:我可以 运行 在具有这种配置的 x64 服务器中 x64 应用程序 吗?否则,还有其他选择吗?值得一提的是:
- 我不允许在服务器中安装其他软件
- Web 应用程序必须是 64 位
提前致谢。
要使用 x32 位版本的 Access 数据库引擎,您需要在该计算机上安装 x32 位版本的数据库引擎。
要使用 x64 位版本的 Access 数据库引擎,则需要安装 x64 位版本的 Access 数据库引擎。
嘿,如果你需要读取 oracle 数据库,那么你瞧,你需要安装 oracle 数据库引擎来读取驻留在磁盘驱动器上的 oracle 文件。
如果你不能安装任何额外的软件,比如 oracle 来读取 oracle 文件,或者 SQL server 来读取 sql 服务器文件,或者在这种情况下是 Access,那么你就是鸭子肥皂.确实,要阅读 PDF 文件,您需要安装一些 PDF 文件软件。
因此,除非您可以解决不允许在您的服务器上安装适当软件的问题,否则您将无法读取此类软件使用的给定文件——这适用于几乎所有软件系统- 您需要在该服务器上安装适当的软件才能使用此类文件。
因此确实存在 x32 和 x64 位版本的 Access 数据库引擎 (ACE),除非您被允许安装此类软件,否则您无法读取和使用此类数据。
所以请记住,在开发软件时,如果您想打开 word 文件或 pdf 文件或类似任何软件系统,您将需要安装 apocopate 软件才能使用此类文件 – Access 也不例外.如果您需要打开一个 powerpoint 文件,那么很明显您需要在该计算机上安装 powerpoint 软件。
因此您需要在该服务器上获取并安装 x64 位版本的 Access 数据库引擎。既然你注意到你不能安装任何软件,那么你就不太可能实现你的目标。
我通过在 IIS 应用程序池的高级设置中启用 32 位应用程序解决了一个非常相似的问题