zoukankan      html  css  js  c++  java
  • 关于”数据库连接串中的 |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);
  • 相关阅读:
    nvm安装node的问题
    前端必读:浏览器内部工作原理
    读书笔记:《高性能网站建设指南》
    学习前端我读过的书
    Canvas绘制圆形进度条
    gitlab升级方法
    设置root远程连接ubuntu上mysql
    SpringMVC的@ResponseBody返回JSON,中文乱码问题的解决.
    JSTL 格式化输出 Calendar
    在Maven的配置文件中,自定义私有仓库地址和设置下载的jar包的保存位置
  • 原文地址:https://www.cnblogs.com/lizunicon/p/2430765.html
Copyright © 2011-2022 走看看