错误:不是有效的文件名(OleDbException)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误:不是有效的文件名(OleDbException)相关的知识,希望对你有一定的参考价值。

我有一个简单的Access数据库,其中包含一个表。就这个

对于我的Button Load事件,我有这个代码

    Dim con As New OleDb.OleDbConnection
    Dim dbProvider As String
    Dim dbSource As String

    dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
    dbSource = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=‪E:addressBookAddressBook.mdb"

    con.ConnectionString = dbProvider & dbSource

    con.Open()
    MsgBox("Opened")
    con.Close()

在con.Open()行上我得到了这个异常。我无法理解这是什么问题。也许名称“con”是问题,但我将其更改为“c”或“con1”,但同样的异常发生。无法理解的原因。谢谢你的解决方案

答案

我认为此处不需要提供商,因为您已经在源代码中拥有它,更改...

dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
dbSource = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=‪E:addressBookAddressBook.mdb"

con.ConnectionString = dbProvider & dbSource

至...

dbSource = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=‪E:addressBookAddressBook.mdb"

con.ConnectionString = dbSource

看看ConnectionStrings

更好的解决方案是将文件添加到App_Data文件夹,而不是从本地驱动器引用该文件。将连接字符串添加到配置中...

<connectionStrings>
    <add name="AccessConnection"
        connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|dbName"
        providerName="System.Data.OleDb" />
</connectionStrings>
另一答案

@放在连接字符串之前。这个对我有用!

另一答案
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    Dim dbprovider As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:UsersuserDocumentsk1.accdb"
    conn.ConnectionString = dbprovider
    conn.Open()

以上是关于错误:不是有效的文件名(OleDbException)的主要内容,如果未能解决你的问题,请参考以下文章

Python ODBC 连接:不是有效的文件名错误

出现“要求的文件D:\msyh.ttf 不是有效的字体文件”错误

Firebase 错误:symbolFileMappings:upsert:上传的文件不是有效的 Breakpad 符号文件

在运行历史记录中找不到有效模型。这意味着 smac 无法拟合有效模型。请检查日志文件是不是有错误

为啥 CreateProcess 给出错误 193(%1 不是有效的 Win32 应用程序)

text 错误:错误:“T”不是有效的基于文件的资源名称字符:基于文件的资源名称必须仅包含小写的a-z,0-9或