我有一个简单的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:\addressBook\AddressBook.mdb"
con.ConnectionString = dbProvider & dbSource
con.Open()
MsgBox("Opened")
con.Close()
在con.Open()行上我得到了这个异常。我无法理解这是什么问题。也许名称“con”是问题,但我将其更改为“c”或“con1”,但同样的异常发生。无法理解的原因。感谢任何解决方案
答案 0 :(得分:0)
我不认为此处需要提供商,因为您已经在源代码中进行了更改...
dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
dbSource = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\addressBook\AddressBook.mdb"
con.ConnectionString = dbProvider & dbSource
为...
dbSource = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\addressBook\AddressBook.mdb"
con.ConnectionString = dbSource
更好的解决方案是将文件添加到App_Data
文件夹,而不是从本地驱动器引用该文件。将连接字符串添加到配置...
<connectionStrings>
<add name="AccessConnection"
connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|dbName"
providerName="System.Data.OleDb" />
</connectionStrings>
答案 1 :(得分:0)
将@
放在连接字符串之前。它对我有用!
答案 2 :(得分:-1)
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:\Users\user\Documents\k1.accdb"
conn.ConnectionString = dbprovider
conn.Open()