我正在使用 VB.NET 6.0.5、Visual Basic 和 Visual Studio Community 2022 構建 Windows Winforms 桌面應用程式。
我曾經使用Microsoft Access Database Engine連接到 ACCDB 檔案。
它在開發機器上運行良好,但是當我嘗試部署到全新安裝的 Windows 10 x64 機器時;我必須讓安裝程式下載并安裝 ACE 引擎。
我想盡可能減少先決條件,因為最終用戶已經必須下載并安裝 .NET 6 Runtime。
我發現所有版本的 Windows 默認都帶有Microsoft Access Driver (*.mdb),我想使用它。

司機位置是: C:\Windows\SysWOW64\odbcad32.exe
我認為如果有人安裝了 Office,它可能會將驅動程式更新為不同的Jet.OLEDB版本。
所以我的問題是:
如何檢查當前Jet.OLEDB驅動程式的版本以及連接字串是什么?
我當前的連接字串是:
Dim cStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database.mdb;User ID=Admin;Password=123;"
但是,它仍然給出了Microsoft.Jet.OLEDB.4.0 Provider is not registered。

我知道 ACE Engine 和 ACCDB 作業得更好,但對我來說使用 JET 和 MDB 就足夠了。
請幫忙!
謝謝
更新:20/5/2022
我嘗試過但沒有成功的事情:
- 我將應用程式編譯為以x86
Jet.OLEDB為目標,正如許多不支持x64的參考文獻中所說的那樣。 - 我試過了
Provider=Microsoft.Jet.OLEDB.10.0。
uj5u.com熱心網友回復:
好吧,如果您想知道連接字串應該是什么?讓 VS 為您構建它。
(無論如何,您都不想提交代碼或輸入連接字串 - 而且您不必這樣做)。
因此,在為您的 VS 專案設定時,請在此處:

所以,讓我們點擊那個 [...] 并使用 JET(而不是 ACE)建立連接。
但是,您的問題/問題是 NOW vs2022 是 x64 位(第一個版本就是這樣)。
我正在運行 2019 年,因此它仍將測驗和驗證 x32 位連接。我懷疑 vs2022 不會通過“測驗”按鈕,但您仍然可以使用它來構建連接。
因此,在上面,我們啟動了連接向導, - 為默認的 sql 服務器點擊更改,我們現在有這個選擇:

好的,我們選擇了 Access,但是 JET 與 ACE 呢?
好吧,點擊高級 - 這個:

現在我們可以(開始)選擇提供商。
這:

所以,你可以選擇jet或ACE。
選擇jet,那么我們現在回到這里:

現在因為我正在運行 vs2019,所以我的測驗連接將起作用!!!- 對你來說,它可能不會。因此,為您準備的測驗連接按鈕 - 您可以嘗試一下,但即使它給出失敗訊息,您的連接仍然正常。
這:

好的,至此,我們完成了。
我們現在在代碼中可以在我們的代碼中使用上述連接。像這樣說:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Using conn As New OleDbConnection(My.Settings.TestJET)
Using cmdSQL As New OleDbCommand("SELECT * FROM tblHotels", conn)
conn.Open()
Dim rstData As New DataTable
rstData.Load(cmdSQL.ExecuteReader)
Dim strMSG As String =
"There are " & rstData.Rows.Count & " Hotels in the database " & vbCrLf &
"The first Hotel is " & rstData.Rows(0).Item("HotelName")
MsgBox(strMSG, MsgBoxStyle.Information, "Table info")
End Using
End Using
End Sub
我們得到了這個:

現在,我想我可以查看連接字串——但我從來沒有真正這樣做過——我總是讓系統為我構建它。
我明白了:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test\Rides_be.mdb
如您所述,請確保您的專案設定為 x32。但是,由于您運行 vs2022,那么連接構建器應該可以作業,但是您必須運行您的專案來測驗該連接,我不認為在 vs2022 中,您可以使用“測驗”連接。
另一方面,由于大部分辦公室(甚至 Access ACE 是 x64 位?)。然后,如果您使用 x64 位 ACE 建立連接,那么您的測驗連接按鈕應該可以作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/479959.html
標籤:VB.net 毫秒访问 数据库连接 数据库 视觉工作室 2022
