在做一个有关数据库连接的应用程序。用Access建的数据库。在建立数据库连接的时候,就制定了数据库的存放位置--是绝对路径。在配置文件里的AppSettings里的values上显示的是绝对路径,例如:
E:\application\school.mdb. 这样在自己的本地的机器上能正常运行。如果在其他的机器上运行的话,最好使用相对路径。
    但是我不知道怎么在程序中使用或者是配置相对路径,请各位大虾能详细的解释一下到底怎么在程序中设置相对路径。越详细越好。比如:要用到什么类,需要如何改动config文件、等等
    我在此拜谢!如果解决问题,一定附上50分,说到做到。

解决方案 »

  1.   

    举个例子说,你新建一个项目,这个项目默认的为WindowsApplication1,那么在C:\Documents and Settings\wangrong\My Documents\Visual Studio Projects\WindowsApplication1\WindowsApplication1里你比方说建了个文件夹叫‘数据库文件’,那么此时你要使用这个Access文件(比如说路径为C:\Documents and Settings\wangrong\My Documents\Visual Studio Projects\WindowsApplication1\WindowsApplication1\数据库文件\abc.mdb),且打包时也装进去,就可以不用配置什么路径了,只用在调用代码里将路径设为System.Environment.CurrentDirectory+"..\..\数据库文件\abc.mdb"即可。
    System.Environment.CurrentDirectory的作用就是得到你工程的debug目录位置。
      

  2.   

    school.mdb 在程序运行目录下,用下面的路径就可以
    System.Windows.Forms.Application.StartupPath +"\\school.mdb"
      

  3.   

    Access数据库一般是放在站点里面的,也只有这样才可以使用相对路径,否则不可能使用相对路径,还有一种把Access数据库放在虚拟目录里面,然后,在用站点的路径访问.
    几种都试试把,
    1.本机,
    a.绝对路径可以
    b.相对路径可以(只对站点里面)
    2.其他机器(限局域网)
    a.相对路径,放在虚拟目录里面,比如:放在其他机器的C:\Inetpub\wwwroot目录里面,假设改机器名为B,
    那么相对路径为:  http://B/school.mdb
    你试试
      

  4.   

    web.config保存Access数据库路径用绝对路径.
      

  5.   

    可通过Response.write(Request.PhysicalApplicationPath)
    获取当前正在执行的服务器应用程序的根目录的物理文件系统路径。
      

  6.   

    string str5=Application.StartupPath;//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
    ////////////////////////////////////////////////
    string str1 =Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。  
    string str2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。
    //备注 按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:\”)。如果该进程在子目录中启动,则此属性的值为不带尾部反斜杠的驱动器和子目录路径(如“C:\mySubDirectory”)。
    string str3=Directory.GetCurrentDirectory();//获取应用程序的当前工作目录。
    string str4=AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集。
    string str5=Application.StartupPath;//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
    string str6=Application.ExecutablePath;//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
    string str7=AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取或设置包含该应用程序的目录的名称。
      

  7.   

    你可以把数据库放到项目文件夹下 : (如: 解决方案\项目文件夹\数据库.mdb)
      这样你把连接字符串改成 :
         OleDbConnection conn=new OleDbConnection("provider=Microsoft.jet.oledb.4.0;data source="+Server.MapPath("Flower.mdb")); 
      这样你把你的工程带到哪都可以用了. (我用是好用,你试试吧)  ^_^
      

  8.   

    是winform的。我在程序中建了一个类用来连接数据库,其他的程序用来共享这个连接。这个类是这样写的:
    public class Connection
    { public OleDbConnection conn = null;
    public Connection()
    {
             conn = new OleDbConnection();
    conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=E:\jiaxiao\controlSchool.mdb;"; }
    }app.config是这样的:<?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <appSettings>
    <add key = "JXConnectionString" value ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= e:\jiaxiao\controlSchool.mdb;" />
    </appSettings>
    </configuration>具体点我应该怎么改写app.config, 类Connection需要什么更改吗?当然了还是那个问题,使用相对路径。