欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

数据库连接字符串中的|DataDirectory| 有大用

数据库连接字符串中的|DataDirectory|

在配置文件中配置数据库连接字符串经常会用到|DataDirectory|,如下:

<connectionStrings>
    <add name="ConnectionString" connectionString="data source=.;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\test.mdf;" providerName="System.Data.SqlClient" />
</connectionStrings>

(注:DataDirectory 仅能应指定在路径的开头,放在任何其他位置将得不到解析。 如 |DataDirectory|\test.mdf被解析为 项目根目录\App_Data\test.mdf,

           而\data\|DataDirectory| \test.mdf 则视为物理路径,不会对|DataDirectory|做解析

 

|DataDirectory| 在WebForm项目下默认为 项目根目录\app_data 文件夹,在winform和控制台项目下,则为 项目根目录\bin\debug 或 项目根目录\bin\release 文件夹

实际开发过程中,一般会把数据库文件放在项目根目录下或者项目根目录下的某个文件夹中,在winform和控制台项目下,可以通过:

AppDomain.CurrentDomain.setData(“DataDirectory”,我的目录字符串) 来自定义|DataDirectory|的对应路径。

代码示例如下:

 

复制代码
static void Main(string[] args)
{
      string p = AppDomain.CurrentDomain.BaseDirectory;
      if (p.IndexOf("\\bin\\") > 0)
      {
          if (p.EndsWith("\\bin\\Debug\\"))
              p = p.Replace("\\bin\\Debug", "");
          if (p.EndsWith("\\bin\\Release\\"))
              p = p.Replace("\\bin\\Release", "");
      }
      if (!p.EndsWith("App_Data\\"))
          p = p + "App_Data\\";
      AppDomain.CurrentDomain.SetData("DataDirectory", p);
      
}
复制代码

 

 

参考:https://docs.microsoft.com/zh-cn/dotnet/framework/data/adonet/ef/connection-strings

           https://www.cnblogs.com/jhxk/articles/2583680.html


来自  https://www.cnblogs.com/lucky-donkey/p/13945784.html


普通分类: