[英]Connection string in C# for a local db in a desktop application
我正在嘗試為我的應用程序使用本地數據庫,並希望它駐留在我的應用程序內的文件夾中。 Unlees我遺漏了一些東西,這不應該是用戶權限的問題,因為它在應用程序文件夾中。
連接字符串是這樣的:
<connectionStrings>
<add name="Calendario2DB"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=\AppData\Database1.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
我正在使用代碼第一個aproach,所以數據庫應該在運行時生成(填充),但我有一個問題
AttachDbFilename=\AppData\Database1.mdf
這應該指向我的應用程序中的一個文件夾(稱為appdata),但是沒有處理錯誤:
發生文件激活錯誤。 物理文件名'\\ AppData \\ Database1.mdf'可能不正確。 診斷並更正其他錯誤,然后重試該操作。 CREATE DATABASE失敗。 無法創建列出的某些文件名。 檢查相關錯誤。
那么如何將路徑名寫入phisical文件呢?
您應該使用內置的|DataDirectory|
特征。
<connectionStrings>
<add name="Calendario2DB"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
然后數據庫將位於:
\\ Program Files \\ Application Location \\ App_Data \\ Database1.mdf
根據文檔,您不能使用相對路徑而不使用|DataDirectory|
:
通過使用DataDirectory替換字符串,路徑可以是絕對路徑或相對路徑。 如果使用DataDirectory,則數據庫文件必須存在於替換字符串指向的目錄的子目錄中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.