0

我創建一個簡單的Windows窗體應用程序使用本地SQL Server Express數據庫作爲數據源。在調試期間,數據庫文件被複制到調試文件夾中,一切正常,但這不是我想要的。我只想使用數據庫文件的一個副本。SQL Server Express - 如何防止將數據庫複製到調試文件夾中?

解決方案,我發現是使用硬編碼路徑到數據庫文件中的連接字符串:

Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\db.mdf;Integrated Security=True;User Instance = true 

那麼,有沒有配置VS只使用一個數據庫文件,而不是硬編碼它的路徑更智能的方式在連接字符串?

回答

0

整個用戶實例和AttachDbFileName =方法有缺陷 - 最好!當運行在Visual Studio中的應用程序,它會圍繞.mdf文件被複制(從App_Data目錄輸出目錄 - 通常.\bin\debug - 在你的應用程序運行)和最有可能,你INSERT的作品就好了 - 但你只是看着錯誤.mdf文件到底!

在我看來REAL的解決辦法是

  1. 安裝SQL Server Management Studio中快速(如果你還沒有的話)

  2. SSMS創建數據庫快遞,給它一個邏輯名稱(例如MyDatabase

  3. 連接到它使用其邏輯數據庫名稱(在服務器上創建它時給出)和讓服務器處理所有文件相關的詳細信息;不要亂用物理文件和用戶實例。在這種情況下,您的連接字符串將是這樣的:

    Data Source=.\\SQLEXPRESS;Database=MyDatabase;Integrated Security=True 
    

    和其他一切是正是和以前一樣......

+0

工作的呢? – ralphgabb

+0

@ralphspoon:*** YES !! *** –

相關問題