Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
桌面应用程序中本地数据库的C#连接字符串_C#_Entity Framework 5_Connection String - Fatal编程技术网

桌面应用程序中本地数据库的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>