Microsoft.ACE.OLEDB.12.0提供程序未注冊我有一個帶有兩個項(xiàng)目的Visual Studio 2008解決方案(一個Word-Template項(xiàng)目和一個用于測試的VB.Net控制臺應(yīng)用程序)。這兩個項(xiàng)目都引用一個數(shù)據(jù)庫項(xiàng)目,該項(xiàng)目打開與MS-Access 2007數(shù)據(jù)庫文件的連接,并引用System.Data.OleDb。在數(shù)據(jù)庫項(xiàng)目中,我有一個函數(shù),它按如下方式檢索數(shù)據(jù)表 private class AdminDatabase
' stores the connection string which is set in the New() method
dim strAdminConnection as string
public sub New()
...
adminName = dlgopen.FileName
conAdminDB = New OleDbConnection
conAdminDB.ConnectionString = "Data Source='" + adminName + "';" + _
"Provider=Microsoft.ACE.OLEDB.12.0"
' store the connection string in strAdminConnection
strAdminConnection = conAdminDB.ConnectionString.ToString()
My.Settings.SetUserOverride("AdminConnectionString", strAdminConnection)
...
End Sub
' retrieves data from the database
Public Function getDataTable(ByVal sqlStatement As String) As DataTable
Dim ds As New DataSet
Dim dt As New DataTable
Dim da As New OleDbDataAdapter
Dim localCon As New OleDbConnection
localCon.ConnectionString = strAdminConnection
Using localCon
Dim command As OleDbCommand = localCon.CreateCommand()
command.CommandText = sqlStatement
localCon.Open()
da.SelectCommand = command
da.Fill(dt)
getDataTable = dt
End Using
End FunctionEnd Class當(dāng)我從我的Word 2007模板項(xiàng)目中調(diào)用此函數(shù)時,一切正常; 沒有錯誤。但是當(dāng)我從控制臺應(yīng)用程序運(yùn)行它時會拋出以下異常ex = {“'Microsoft.ACE.OLEDB.12.0'提供程序未在本地計(jì)算機(jī)上注冊?!眪兩個項(xiàng)目具有相同的引用,并且控制臺應(yīng)用程序在我第一次編寫時(前一段時間)確實(shí)有效,但現(xiàn)在它已停止工作。我必須遺漏一些東西,但我不知道是什么。有任何想法嗎?
3 回答

ABOUTYOU
TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個贊
我有Visual Basic 2008的Visual Basic程序使用Access 2007數(shù)據(jù)庫并收到相同的錯誤。我找到了一些線程,如果你運(yùn)行的是64位系統(tǒng),建議將高級編譯配置更改為程序?qū)傩灾械膞86。到目前為止,我的程序沒有任何問題。

慕少森
TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個贊
您運(yùn)行的是64位系統(tǒng),數(shù)據(jù)庫運(yùn)行32位但控制臺運(yùn)行64位嗎?沒有運(yùn)行64位的MS Access驅(qū)動程序,并且會報(bào)告與您報(bào)告的錯誤相同的錯誤。
- 3 回答
- 0 關(guān)注
- 1207 瀏覽
添加回答
舉報(bào)
0/150
提交
取消