后台在Man文件夹下,Access数据库在Man/App_Data下面。
Web.Config中:
  <appSettings>
    <add key="AccessConn" value="Provider=Microsoft.Jet.OLEDB.4.0; Data Source ={0}\\Man\\App_Data\\Company.mdb"></add>  
  </appSettings> Connection.cs中:
  public class DataBaseDB//连接Access数据库
    {
        public static String ConnectionString = String.Format(ConfigurationManager.AppSettings["AccessConn"], HttpContext.Current.Server.MapPath("."));
    }  
浏览时总是提示:'D:\我的软件\ASP.NET\Company\Man\Man\App_Data\Company.mdb'不是一个有效的路径。
数据库是存在:'D:\我的软件\ASP.NET\Company\Man\App_Data\Company.mdb'下面的,怎么会提示上面的错误呢?

解决方案 »

  1.   

    using System.Data;
    using System.Data.OleDb;......string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
    strConnection+=@"Data Source=MapPath("Authors.mdb");//这里是相对路径OleDbConnection objConnection=new OleDbConnection(strConnection);objConnection.Open();
    objConnection.Close();......
      

  2.   

    原来后台和前台放在一个文件夹下的时候,
    Web.Config中: 
      <appSettings> 
        <add key="AccessConn" value="Provider=Microsoft.Jet.OLEDB.4.0; Data Source ={0}\\App_Data\\Company.mdb"> </add>  
      </appSettings> 这样就可以使用,后台放到单独的文件夹下就不行了。
      

  3.   

    把\\Man去掉试一试
    <appSettings> 
        <add key="AccessConn" value="Provider=Microsoft.Jet.OLEDB.4.0; Data Source ={0}\\Man\\App_Data\\Company.mdb"> </add>  
      </appSettings> 
      

  4.   

    我是在Web.Config中配置连接数据库的,以后维护也方便,而且后台是放在一个文件夹Man下的,和前台位置不一样,不知如何同样能调用数据库?
      

  5.   

    我原来是把\\Man去掉了,浏览时就提示
    'D:\我的软件\ASP.NET\Company\App_Data\Company.mdb'不是一个有效的路径。
    数据库路径不对。因为我是放在'D:\我的软件\ASP.NET\Company\Man\App_Data\Company.mdb'这里的。
      

  6.   

    asp.net 和IIS中浏览都不行。
      

  7.   

    1个 Dir的在webconfig 里配置
      

  8.   

    public class DataBaseDB//连接Access数据库 
        { 
            public static String ConnectionString = String.Format(ConfigurationManager.AppSettings["AccessConn"], HttpContext.Current.Server.MapPath("~")); 
        } 
    要用~,不要用.
      

  9.   

    2个目录的不能在Web.Config中配置吗?
      

  10.   

    ~和.有什么区别
     <appSettings> 
        <add key="AccessConn" value="Provider=Microsoft.Jet.OLEDB.4.0; Data Source ={0}\\App_Data\\Company.mdb"> </add>  
      </appSettings> {0}是什么意思,我在网上找的,但不知什么意思
      

  11.   


    先看这句string str = String.Format("{0} {1}", "hello", "world"); // 输出 "hello world"{0}, {1} 是占位符!,用第二个,三个...参数替换
      

  12.   

    public static String ConnectionString = String.Format(ConfigurationManager.AppSettings["AccessConn"], HttpContext.Current.Server.MapPath("~/"));
      

  13.   

    . 表示当前路径,这在 UNIX/DOS/Window 是习惯用法~/ 表示虚拟目录跟路径,这是 ASP.NET 服务器(控件)的特殊规定Server.MapPath 的本意是将指定的虚拟路径映射为实际的物理路径(磁盘)
    那么,
    Server.MapPath(.); 获取当前运行页面的物理路径
    Server.MapPath("~/"); 获取虚拟目录的物理路径
      

  14.   

    谢谢,我在VS中运行一切正常。
    但是在IIS中添加产品保存时提示:
    “/Company”应用程序中的服务器错误。
    操作必须使用一个可更新的查询。
      

  15.   

    VS中运行正常,为什么在IIS中不行呢?
      

  16.   

    操作系统或是分区格式的问题,如果分区格式为NTFS,则在网站文件夹的属性中,添加ervryone或asp.net用户,给全部权限.
    如果分区格式为FAT32,则不会出现这个错误提示.但是NTFS安全性高.