【问题标题】:How to define a connection string to create local database in the current folder?如何定义连接字符串以在当前文件夹中创建本地数据库?
【发布时间】:2014-08-15 21:23:28
【问题描述】:

我当前的连接字符串是:

<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 中创建的事实之外,这很好用,我该如何更改它以便将其创建在程序运行的同一文件夹中或定义我选择的不同位置?

【问题讨论】:

    标签: c# .net database-connection connection-string local-database


    【解决方案1】:

    你不见了AttachDBFilename=|DataDirectory|

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

    引用MSDN

    使用 AttachDBFilename 连接字符串关键字添加数据库 到您的 LocalDB 实例。使用 AttachDBFilename 时,如果不 使用数据库连接字符串指定数据库的名称 关键字时,数据库将从 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\"); 
    

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

    【讨论】:

    • 如何将DataDirectory 设置为当前文件夹?
    • 您的 DataDirectory 将是您解决方案中的 appData,因此是最佳选择
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    相关资源
    最近更新 更多