.NET核心和MS Access“迁移”连接

问题描述 投票:0回答:2

我使用.NET 2.1核心的Web应用程序,需要设置一个网页年长.mdb Access文件迁移到新的SQL Server数据库。这不是一个单一的Access数据库....它的数百用户所有者的数据库。

我有这个安装:AccessDatabaseEngine_X64.exe

该安装的NuGet:

using System.Data.Odbc;

32/64位访问驱动程序在ODBC 32家上市和ODBC 64位.NET的核心是64位只从我的理解。

但是...我不能让过去这个错误会抛出异常的

connection.Open();

OdbcException:ERROR [IM002] [微软] [ODBC驱动程序管理器]数据源名称未找到和指定默认驱动程序

我的代码:

public MigrateAccessDb(List<string> Files)
{
    //string file = Files[0];
    string file = @"D:\test.mdb";
    string connectionString = "Driver={Microsoft Access Driver(*.mdb, *.accdb)}; Dbq=" + file;
    //string connectionString = String.Format("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = {0}; Persist Security Info = False; ", file);
    //string connectionString = String.Format("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = {0}; Persist Security Info = False;", file);

    string queryString = "SELECT * FROM Configs";

    using (OdbcConnection connection = new OdbcConnection(connectionString))
    {
        OdbcCommand command = new OdbcCommand(queryString, connection);

        connection.Open();

做了一个简单的.NET核心的控制台应用程序..同样的错误:enter image description here

通过多次的ConnectionStrings循环enter image description here

c# ms-access .net-core odbc
2个回答
2
投票

空间是一个ODBC连接字符串中显著。

未找到数据源名称且仅当你没有一个匹配的名称和匹配位数司机没有发生指定默认驱动程序错误。

对于访问正确的ODBC连接字符串:

"Driver={Microsoft Access Driver (*.mdb, *.accdb)}; Dbq="+ file;

你失踪Driver(之间的空间

需要注意的是安装在32位版和Access数据库引擎的64位版本,是不是真的支持,并且往往会导致麻烦。我知道空间是一个问题,但有可能是别人在你确切的设置。


0
投票

你试试这个?

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\myAccessFile.mdb;Persist Security Info=False;

Reference

© www.soinside.com 2019 - 2024. All rights reserved.