CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

有关C#中相对路径的问题,解决问题绝对给50分

楼主black_or_white(白纸黑字)2005-07-01 22:05:53 在 .NET技术 / C# 提问

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

1 楼dugupiaoyun(独孤飘云)回复于 2005-07-01 22:21:19 得分 0

举个例子说,你新建一个项目,这个项目默认的为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目录位置。Top

2 楼xiamihgy(毛虫)回复于 2005-07-01 22:29:48 得分 0

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

3 楼yegucheng(无名)回复于 2005-07-01 22:36:14 得分 0

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

4 楼renyu732(Sysinfo)回复于 2005-07-02 07:59:10 得分 0

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

5 楼renyu732(Sysinfo)回复于 2005-07-02 08:00:26 得分 0

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

6 楼dutguoyi(新鲜鱼排)回复于 2005-07-02 08:07:37 得分 50

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;//获取或设置包含该应用程序的目录的名称。Top

7 楼wutao5935(小狼)回复于 2005-07-02 09:41:14 得分 0

MARK!Top

8 楼jiekewei(皆可为)回复于 2005-07-02 10:35:45 得分 0

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

9 楼BigIdiot628(大笨蛋,谁叫你不努力!)回复于 2005-07-02 11:51:22 得分 0

AppDomain.CurrentDomain.BaseDirectoryTop

10 楼black_or_white(白纸黑字)回复于 2005-07-02 14:48:11 得分 0

是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需要什么更改吗?当然了还是那个问题,使用相对路径。Top

11 楼black_or_white(白纸黑字)回复于 2005-07-02 15:43:50 得分 0

谢谢各位的支持和帮助。  
  我分数不多,不能给了。谢谢Top

相关问题

  • c++builder中怎样使用相对路径(急)
  • (菜鸟问题)请问c#中怎么使用相对路径?
  • 请问如何在C#中使用相对路径?
  • (100分!!)c#中如何指定axMediaPlayer播放文件的相对路径名?
  • 在c#中如何指定axMediaPlayer播放文件的相对路径名?急!
  • 有关C#中相对路径的问题,解决问题绝对给50分
  • asp.net中用C#连接Access数据库,如何使用相对路径呀?
  • 关于jsp中的相对路径。
  • javascript中怎样使用相对路径?
  • javascript中,怎样使用相对路径?

关键词

  • 相对
  • 数据库
  • 文件
  • 应用程序
  • 执行
  • 文件夹
  • 解决
  • 连接
  • 路径
  • windowsapplication1

得分解答快速导航

  • 帖主:black_or_white
  • dutguoyi

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo