4

我当前的连接字符串是:

<connectionStrings>
    <add name="myConnectionString"         
         connectionString="Data Source=(LocalDB)\v11.0;Initial Catalog=CapacityDatabase.mdf;Integrated Security=True;Connect Timeout=10"
         providerName="System.Data.SqlClient"/>
  </connectionStrings>

这很好用,除了数据库是在C:\Users\currentUser我如何更改它以便在程序运行的同一文件夹中创建或定义我选择的不同位置的事实之外创建的?

4

1 回答 1

3

你不见了AttachDBFilename=|DataDirectory|

数据目录| (括在管道符号中)是指示数据库路径的替换字符串。它消除了对导致几个问题的完整路径进行硬编码的需要,因为数据库的完整路径可以在不同的位置进行序列化。DataDirectory 还使共享项目和部署应用程序变得容易。

引用MSDN

使用 AttachDBFilename 连接字符串关键字将数据库添加到您的 LocalDB 实例。使用 AttachDBFilename 时,如果不使用 Database 连接字符串关键字指定数据库的名称,则在应用程序关闭时,该数据库将从 LocalDB 实例中删除。

尝试像这样更改连接字符串:

<add name="myConnectionString"
    providerName="System.Data.SqlClient"
    connectionString="Data Source=(LocalDB)\v11.0;AttachDbFileName=|DataDirectory|\CapacityDatabase.mdf;InitialCatalog=CapacityDatabase;Integrated Security=True;MultipleActiveResultSets=True" />

编辑

|数据目录| 是一个占位符,在 ASP.Net MVC 模板的情况下是指目录 App_Data。这样就可以为您的 db 文件指定相对路径。您可以定义 |DataDictionary| 的值 像这样:

AppDomain.CurrentDomain.SetData("DataDirectory", @"C:\XYZ\App_Data\"); 

但不可能使用指向目录结构中更高位置的相对路径。

于 2014-06-25T10:58:54.310 回答