2010-11-17 17 views
0
cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\solutionvs10\test\test\bin\Debug\db2.mdb;**Jet OLEDB:Database Password=secret**") 

cn.Open() 
''# codes 
cn.Close() 

我用VS 2010 以上是我的代碼......ü可以看到它是MS Access數據庫....(密碼保護) 我怎樣才能創建一個安裝。 ....可以是安裝其他電腦.........如何在vb.net中創建設置? ?與例如

我可以創建這樣的設置嗎?

回答

2

正如Will指出的那樣,將.mdb文件包含到您的項目中可能是您​​正在尋找的內容。您可以在項目管理器中執行此操作,然後調整屬性,以便將文件發佈到應用程序文件夾(複製到輸出目錄=始終複製)。

在代碼中,你應該再參考數據庫

cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & My.Application.Info.DirectoryPath & "\db2.mdb;**Jet OLEDB:Database Password=secret**") 

,因爲你不知道你的數據庫的客戶端計算機上的安裝路徑。

在你可能想確保你發佈你的應用程序,因爲Jet4.0一個32位應用程序的64位應用程序無法正常工作的另一面(見http://connect.microsoft.com/VisualStudio/feedback/details/123311/win-xp-x64-jet-v4-0

+0

+1爲32位tidbit – 2010-11-17 15:39:56

+0

請任何一個告訴我一個步驟如何創建一個設置...因爲我第一次創建它... – 2010-11-17 16:01:51

+0

轉到您的主項目屬性並選擇「發佈」選項卡。 – Geoffrey 2010-11-18 22:05:39

2

爲了便於在另一臺計算機上安裝,我推薦使用SQLite或SQL Server Compact。訪問配置可能比sqlite或mssql compact更困難。

除此之外,我會建議使用ClickOnce部署應用程序。 Documentation here

+2

實際上,用於接入噴氣發動機是內置於Windows XP及更高版本中。無需安裝訪問或任何其他運行時即可使用該數據庫。 – 2010-11-17 15:20:58

1

我認爲將MDB文件作爲項目的一部分,並將其設置爲正確的屬性以將其複製到應用程序文件夾中將會有效。

另一方面,您將不得不確保將MDAC 2.8設置爲您的項目依賴項之一,以便您的用戶被通知或被要求下載並將其安裝到他們的計算機上。

我認爲你可以通過ClickOnce進行部署,否則創建一個SetUp project,這是可行的。

+0

請任何人告訴我一個步驟如何創建一個設置...因爲我第一次創建它...... – 2010-11-17 16:01:11

3

首先,這段代碼你貼是錯誤:

cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\solutionvs10\test\test\bin\Debug\db2.mdb;**Jet OLEDB:Database Password=secret**") 

cn.Open() 
''# codes 
cn.Close() 

這是錯的原因是因爲你不能保證關閉數據庫連接,最終導致的狀態下,你的數據庫是您的應用程序無法訪問。這在您的開發測試中不會發生,因爲這樣的測試往往是短暫的,但它會發生在您的用戶身上,他們傾向於保持應用程序運行時間較長。

現在,我知道你在想,「是的,我正在關閉我的連接,你沒有看到cn.Close()?是的,我明白了。但這還不夠好。有幾種情況(例外是大的)可能導致此代碼無法運行。寫這段代碼的正確方法是這樣的:

cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\solutionvs10\test\test\bin\Debug\db2.mdb;**Jet OLEDB:Database Password=secret**") 
Try 
    cn.Open() 
    ''# codes 
Finally 
    cn.Close() 
End Try 

還有的在VB.Net短手語法看起來像這樣:

Using cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=C:\solutionvs10\test\test\bin\Debug\db2.mdb;**Jet OLEDB:Database Password=secret**") 
    cn.Open() 
    ''# codes 
End Using ''# No need to call .Close() any more, the Using structure takes care of it 

現在,實際部署問題。

您需要將安裝項目添加到保存應用程序項目的相同解決方案中。然後,您應該能夠使用主項目的輸出作爲安裝項目的包,並將初始數據庫文件包含爲內容資源。安裝項目中不需要其他任何東西; Windows包含開箱即用的Jet數據庫引擎。如果需要,您可能需要花一些時間來確保合適的.Net框架運行時將作爲依賴項安裝。

+0

+1徹底和正確的答案。 – 2010-11-17 15:34:49

+0

請任何一個告訴我一個步驟如何創建一個設置...因爲我第一次創建它....... – 2010-11-17 15:54:51