gpt4 book ai didi

ms-access - 错误 [HY000] 一般错误 : Invalid file dsn ''

转载 作者:行者123 更新时间:2023-12-03 17:05:23 25 4
gpt4 key购买 nike

我正在尝试使用 this code snippet
我收到以下错误消息:

System.Data.Odbc.OdbcException (0x80131937): ERROR [HY000] General error: Invalid file dsn ''
at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection o
wningObject)
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 oldC
onnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnecti
onOptions userOptions)
at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.Odbc.OdbcConnection.Open()

精简后的代码是:
open System
open System.Data.Odbc

let connectToAccess filename =
let connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;FileDSN=" + filename + ";User Id=admin;Password=;"
new OdbcConnection(connectionString)

let connectToDb() =
let accessFile = Environment.CurrentDirectory + @"\folder\filename.accdb"
connectToAccess accessFile

let connection = connectToDb()
connection.Open()

我确实检查并验证了路径和文件名是否正确。我也试过:
  • 相对路径
  • 虚拟 Access 文件(以确保文件未损坏)
  • 较旧的 *.msb 文件
  • 在终端中运行代码
  • 将代码作为可执行文件运行 - 确保路径仍然正常
  • 最佳答案

    您将 DSN 与 accdb 文件与 accdb 文件混淆了。
    FileDSN 包含有关如何连接到数据库的详细信息,但您传递的是数据库的路径,而不是包含有关如何连接到数据库的详细信息的文件路径。
    此外,您正在使用 Microsoft.Jet.OLEDB.4.0作为提供程序,但尝试使用 ODBC 连接,而不是 OLEDB 连接,因此需要 ODBC 驱动程序而不是 OLEDB 提供程序,并尝试使用 accdb 文件,而 Jet 仅支持 mdb 文件。
    使用标准连接字符串。 ConnectionStrings.com 是一种流行的资源,但文档中也充满了它们。
    示例(对于 accdb 文件,需要安装 Access 数据库引擎并将位数与您的程序匹配)。

    let connectionString = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=" + filename + ";"
    请注意,这些错误都存在于代码片段中。那个片段从来没有奏效。

    关于ms-access - 错误 [HY000] 一般错误 : Invalid file dsn '' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44328806/

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