當我們建立一個小的應用程序而並非是一個真正的項目的時候,可能經常會要把它拷貝到不同的機器上去運行,這個時候,我覺得就沒必要把數據庫(我這里以sqlserver為例)和程序分開單獨的建立在自己的電腦上了,因為程序一動,還要拷貝數據庫文件,這樣一來就麻煩了。我們可以直接把數據庫建立在項目里面。
這樣一來,移動項目的時候,把項目拷走,數據庫文件就一起跟着走了,但是這樣可能還會有一個問題,如果我們之前使用的連接字符串是直接從程序中的數據庫測試連接那里面拷貝過來的話,就會出現路徑不對的問題。
我以前學習ADO.NET的時候,就經常這樣做。直接從這里面去拷貝。
拷貝出來的字符串是這樣的:Data Source=.\SQLEXPRESS;AttachDbFilename=F:\DbConnectionTest\DbConnectionTest\TestDb.mdf;Integrated Security=True;User Instance=True
顯然這里面的路徑只是相對於本機來的。如果到了其它機器上,會出現問題,我們可以做如下修改:
AttachDbFilename=F:\DbConnectionTest\DbConnectionTest\TestDb.mdf;======》AttachDbFilename=|DataDirectory|\TestDb.mdf;
這里,是用|DataDirectory|代替了之前的絕對路徑。如果你的程序是winform或者控制台應用程序類型的,那么DataDirectory代表的是本應用程序的debug文件夾,如果你的程序是網站,那么它就代表的是App_Data文件夾。