簡體   English   中英

C#中的連接字符串,用於桌面應用程序中的本地數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM