• 关于”数据库连接串中的 |DataDirectory|”


    这是ASP.NET 2.0提供的一个”Magic Value“(是DataDirectory宏)。可以在应用程序配置文件中,数据库连接串部分使用它,例如

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


    注意:在使用ASP.NET时,可以任意使用这个MagicValue,但是,WinForm程序是不支持的

    在WinForm程序中,可以手工建立此种支持。

    首先,装备好App_Data文件夹;

    其次,使用的时候记得:自己加上“App_Data\”,因为Winform中把|DataDirectory|翻译成了程序启动目录apppath\bin\debug(或release),后面不带App_Data!

    接下来的问题是:每次运行时,.NET会知道那个复制一份数据库文件到运行目录,致使新增/删除等操作不会及时反映到设计时代码中。

    可以在“项目属性”中设置“数据库属性”-》“复制到输出目录”为“不复制”或  将使用的数据库链接到App_Data下的数据库。

    还有一种比较好的做法:在程序启动时,设置AppDomain.CurrentDomain.SetData(“DataDirectory”,我的目录字符串),指导思想就是去掉【调试期】和【生产期】的差别

    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);
  • 相关阅读:
    2019前端面试系列——CSS面试题
    面试题——数组转树结构
    前端安全
    webpack入门——构建简易版vue-cli
    [] == ![],走进==隐式转换的世界
    Vue图片懒加载插件
    JS常用时间处理方法
    Vue中实现token验证
    VSCode基本配置
    打乱数组——shuffle
  • 原文地址:https://www.cnblogs.com/lizunicon/p/2430765.html
Copyright © 2020-2023  润新知