2012-06-05 133 views
1

可能重複:
SQL Express Connection string - Relative to application location相對路徑連接字符串vb.net

我已經寫在vb.net中的桌面應用程序。該應用程序使用SQL Server Express 2008數據庫(.mdf文件)。 目前,我有連接字符串絕對路徑是這樣的:

Dim ObjConnection As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Pantheo\Documents\Visual Studio 2010\Projects\Food Manager 2012(new)\Food Manager 2012\Food_CustomerDB.mdf;Integrated Security=True;User Instance=True") 

在我的電腦運行好了。如果我建立它,並得到.exe運行到不同的電腦它崩潰,因爲它不能附加數據庫。

我已經嘗試過了相對使用此連接字符串,使:

Dim ObjConnection As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Food_CustomerDB.mdf;Initial Catalog=Food_CustomerDB;Integrated Security=True;User Instance=True") 

沒有成功。有人能幫我嗎?我知道有很多其他的答案,基本上關於C#,但我無法實現它們。在此先感謝

+0

http://stackoverflow.com/questions/3500829/sql-express-connection-string-relative-to-application-location可能是你想要的,那裏有很少的代碼,不會輕易地轉換爲vb –

回答

1

DataDirectory值只是從AppDomain.CurrentDomain屬性列表中提取的字符串。在WinForm應用程序中沒有預先定義,但可以在打開數據庫之前對其進行設置。

AppDomain.CurrentDomain.SetData("DataDirectory", @"C:\MyReadWriteFolder") 

則連接字符串AttachDbFilename=|DataDirectory|\Food_CustomerDB.mdf作品應該提供你把數據庫有(C:\ MyReadWriteFolder)。

+0

而且我如何把數據庫放在另一臺機器上?用安裝程序mabey? – Pantheo

+0

當然,您需要安裝工具,從Visual Studio的deplyment項目開始,或者使用許多免費或付費工具中的一種。請記住,還需要在客戶PC上安裝SQL Server。或者,如果您的程序是針對單個用戶的,您可以使用SqlServer的[LocalDB](http://stackoverflow.com/questions/9655362/localdb-deployment-on-client-pc)版本 – Steve

+0

謝謝Steve。我去做。 – Pantheo