桌面应用程序中本地数据库的C#连接字符串
我试图为我的应用程序使用一个本地数据库,并希望它驻留在我的应用程序中的一个文件夹中。除非我遗漏了一些东西,否则这不应该是用户权限的问题,因为它在应用程序文件夹中 连接字符串如下所示:桌面应用程序中本地数据库的C#连接字符串,c#,entity-framework-5,connection-string,C#,Entity Framework 5,Connection String,我试图为我的应用程序使用一个本地数据库,并希望它驻留在我的应用程序中的一个文件夹中。除非我遗漏了一些东西,否则这不应该是用户权限的问题,因为它在应用程序文件夹中 连接字符串如下所示: <connectionStrings> <add name="Calendario2DB" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=\AppData\Database1.mdf;Inte
<connectionStrings>
<add name="Calendario2DB"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=\AppData\Database1.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
这应该指向“我的应用”中的文件夹(称为appdata),但无法处理错误:
发生文件激活错误。物理文件名“\AppData\Database1.mdf”可能不正确。诊断并更正其他错误,然后重试该操作。
创建数据库失败。无法创建列出的某些文件名。检查相关错误。
那么,如何将路径名写入物理文件?您应该使用内置功能
然后数据库将位于:
\程序文件\应用程序位置\应用程序数据\数据库1.mdf
根据文档,如果不使用|DataDirectory |
,则无法使用相对路径:
通过使用DataDirectory替换字符串,路径可以是绝对路径或相对路径。如果使用DataDirectory,则数据库文件必须存在于替换字符串所指向目录的子目录中
AttachDbFilename=\AppData\Database1.mdf
<connectionStrings>
<add name="Calendario2DB"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>