zoukankan      html  css  js  c++  java
  • web.config或App.config中AttachDBFilenamex相对路径问题

    <add name="employeeManagerConnectionString" connectionString="Data Source=.SQLExpress;Integrated Security=true;
    User Instance=true;
    AttachDBFilename=|DataDirectory|employeeManager.mdf;
    Initial Catalog=employeeManager;" providerName="System.Data.SqlClient" />

    webconfig中的数据库连接是不支持Server.MapPath的,一般我们只能写上数据库文件的物理路径,这给网站迁移带来很大的不方便。今天在网上找到了一个解决办法,与大家分享下。看以下代码:
     
    <connectionStrings>
    <add name="ConnStr_Access"
         providerName="System.Data.OleDb"
         connectionString=
         "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|cms.mdb;"
        />
    </connectionStrings>


    |DataDirectory|会被自动解析到App_Data

    下面是MSDN的说明:

    使用 DataDirectory 替代字符串

    AttachDbFileName 已在 ADO.NET 2.0 中进行了扩展,引入了 |DataDirectory|(包含在管道符号中)替代字符串。DataDirectory 与 AttachDbFileName 结合使用可指示数据文件的相对路径,允许开发人员创建基于数据库源的相对路径(而无需指定完整路径)的连接字符串。

    DataDirectory 点的物理位置取决于应用程序的类型。 在此示例中,要附加的 Northwind.mdf 文件位于应用程序的 app_data 文件夹中。

    Data Source=.\SQLExpress;Integrated Security=true;
    User Instance=true;
    AttachDBFilename=|DataDirectory|app_dataNorthwind.mdf;
    Initial Catalog=Northwind;

    使用 DataDirectory 时,目录结构中的结果文件的路径不能高于替代字符串指向的目录。 例如,如果完全展开的 DataDirectory 为 C:AppDirectoryapp_data,则上面显示的示例连接字符串有效,因为它在 c:AppDirectory 之下。 但是,如果尝试将 DataDirectory 指定为 |DataDirectory|..data,将会产生一个错误,因为 data 不是 AppDirectory 的子目录。

    其他资料:

    http://blog.csdn.net/heqichanggg/article/details/5784839

    http://blog.csdn.net/whuarui2010/article/details/17232505

  • 相关阅读:
    创建可按比例调整的布局的 Windows 窗体
    Visual C# 2010 实现资源管理器
    Visual C# 2010 实现菜单项和状态栏
    使用异步事件在后台进行计算并报告进度
    A Byte of Python(简明Python教程) for Python 3.0 下载
    面向对象思想
    封装变化(二)
    好玩,看你的博客价值几何?
    基于消息与.Net Remoting的分布式处理架构
    设计之道
  • 原文地址:https://www.cnblogs.com/nsky/p/4384443.html
Copyright © 2011-2022 走看看