在web.config中配置access数据库字符串,如果用相对路径该如何写?请指教!!
<appSettings>
  <add key="connectionstring" value="microsoft.jet.oledb.4.0; data source='c:\webinfo\data\xx.mdb'" />
</appSettings>这样写是用的绝对路径,那如何将它换成相对路径了?IIS的虚拟目录是web,拜托各位高手指教!!
能贴出相应的例子源码最好了。
感谢,感谢!!

解决方案 »

  1.   

    我觉得你最好不要在web.config中写,
    我是在WinForm窗体中使用Access,需要自己找到运行文件的路径添加到data source中,
    Web应该也是一样。
    还是动态的修改一下吧。
      

  2.   

    data source=Server.Path("路径")
      

  3.   

    不要写在Web.Config中,写在一个类中,然后添加引用就行了!
      

  4.   

    DBConn:
    public static OleDbConnection Connection
        {
            get
            {
                if(OleDbConnection != null)
                    return OleDbConnection;            OleDbConnection = new OleDbConnection();
                OleDbConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\\..\\DataBase\\survey.mdb";
                try
                {
                    OleDbConnection.Open();
                }
                catch
                {
                    //MessageBox.Show(Application.UserAppDataPath);
                    return null;
                }
                return OleDbConnection;
            }
        }    private static OleDbConnection OleDbConnection;使用的时候就使用DBConn.Connection 就可以了
      

  5.   

    try to use another key<appSettings>
      <add key="provider" value="microsoft.jet.oledb.4.0" />
      <add key="datasource" value="xx.mdb" />
    </appSettings>then in your code, dostring s = String.Format("Provider={0};Data Source={1}", ConfigurationSetting.AppSettings["provider"], Server.MapPath(ConfigurationSetting.AppSettings["datasource"]));
      

  6.   

    我做了一个简单的测试连接例子,用一个button打开连接,代码如下:
    private void Button1_Click(object sender, System.EventArgs e)
    {
        string s = DBConn.Connection.ConnectionString;
    // string s = String.Format("Provider={0};Data Source={1}",ConfigurationSetting.AppSettings["provider"], Server.MapPath(ConfigurationSetting.AppSettings["datasource"]));
    OleDbConnection cn = new OleDbConnection(s);
    try
    {
    cn.Open();
    Response.Write("Open DataBase Success");
    }
    catch(Exception ex)
    {
        Response.Write(ex.Message);
    }
    }
    出错情况如下:
    cumtmimi(咪咪)这个方法:'C:\WINNT\Data\bm.mdb'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。saucer(思归) 这个方法:编译不通过。类型或命名空间名称“ConfigurationSetting”在类或命名空间“System.Configuration”不存在(是否缺少引用程序集?)
    我已添加了引用集:using System.Configuration;请指教,谢谢!!!
      

  7.   

    谢谢saucer(思归),你的这个方法可以了。
      

  8.   

    还想请问一下,在web开发中通常数据库连接字符串是写在web.config中还是一个公共类中了?
      

  9.   

    cumtmimi(咪咪),你写在类中的这个连接字符串有没有测试啊?我这里还是不行啊!!
      

  10.   

    p_con=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Application.StartupPath+@"\数据库\jxc.mdb;Jet OLEDB:Database Password=$jxc$;");我这是在winform写的 你试试