2010-11-05 116 views
0

我不知道在哪裏放置數據庫,以便當我將我的最終應用程序.exe,在它的文件夾中,我將有另一個數據文件夾,並在該文件夾中db.mdf。這裏是我的連接字符串:根數據庫位置

con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename='C:\\Users\\alex\\Documents\\Visual Studio 2010\\Projects\\Network_Remote_Monitoring\\Network_Remote_Monitoring\\data\\bd.mdf';Integrated Security=True;Connect Timeout=30;User Instance=True";

( 「\ DATA \ bd.mdf」,即我想相對REFFERENCE的分貝,像AttachDbFilename =)

回答

1

相對路徑data\\bd.mdf不能在連接中使用嗎?例如,

con.ConnectionString = "DataSource=.\\SQLEXPRESS;AttachDbFilename='data\\bd.mdf';Integrated Security=True;Connect Timeout=30;User Instance=True"; 

否則,你可以使用當前目錄的快捷方式例如,像

string dbdirectory = System.IO.Directory.GetCurrentDirectory() + "\\data\\bd.mdf" 
con.ConnectionString = "DataSource=.\\SQLEXPRESS;AttachDbFilename='" 
+ dbdirectory + "';Integrated Security=True;Connect Timeout=30;User Instance=True"; 

或者你甚至可以打開文件對話框,詢問用戶他們想要保存的節目數據,並從那裏抓住完整的路徑。

編輯:這是你將如何實現你想要的,我會建議但存儲數據庫的其他地方一樣@TomTom提出什麼

2

,當我將有我的最終應用 .exe文件,在它的文件夾,我將不得不 另一個數據文件夾,該文件夾 的db.mdf在

不這樣做。數據庫應該永遠活:

  • 在程序文件夾
  • 在網絡驅動器(以\開始)。

爲什麼要這樣附着呢?在大多數情況下(我所有工作過的)數據庫都是在服務器上顯式創建的。本地數據庫應該存在於用戶程序數據(NOT DOCUMENTS!)文件夾或共享文件夾中。

檢查http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx獲取特殊文件夾的列表。

如果您確實需要將數據庫保持在本地,則您需要ApplicationDataa,LocalApplicationData(未複製)或CommonApplicationData。

+0

「......如果你真的要保持數據庫的本地」(以此爲一般建議),或者,如果你真的想,例如,如果你使用的是在線數據庫解決方案,比如SQLite。我知道問題不在於此,但可能有這樣的理由,在稍微不同的數據庫方案中 – 2010-11-05 06:48:55

+0

但是,然後,您知道,這不是以流程數據庫開頭。 – TomTom 2010-11-05 07:40:36