C#中 与数据库连接的 绝对路径和相对路径的问题

stringstrcmp=@"DataSource=.\SQLEXPRESS;AttachDbFilename=d:\我的文档\VisualStudio2008\Proj... string strcmp = @"Data Source=.\SQLEXPRESS;AttachDbFilename=d:\我的文档\Visual Studio 2008\Projects\WindowsFormsApplication3\WindowsFormsApplication3\Database1.mdf;Integrated Security=True;User Instance=True";
我想讲d:\到database1.mdf 用相对路径来表示要怎么做?
展开
 我来答
icefirewb
2011-11-28
知道答主
回答量:22
采纳率:0%
帮助的人:9.3万
展开全部
相对路径 是”相对“当前路径而言的,所以需要知道当前的路径是什么,如果当前的路径都不确定的话就无法做,首先需要确定下当前的路径是什么。知道后 需要了解"..\"这个符号的意思,两个点表示相对当前目录的父目录(上一级目录),需要再上一级的话就“..\..\”,然后后面跟其文件或子目录。例如d:\我的文档\Visual Studio 2008\Projects\WindowsFormsApplication3\WindowsFormsApplication3\Database1.mdf,这个是你文件的绝对地址,那么当当前目录为d:\我的文档\Visual Studio 2008\Projects\WindowsFormsApplication3\WindowsFormsApplication3\folder,(假设存在),那么相对该目录的相对路径为"..\Database1.mdf"
追问
可是这样写  并不能连接到那个数据库
追答
连接字符串里好像是不能写相对路径的。因为走连接字符串是用到了命令之类的封装类,你不确定里面是如何实现的,一般写绝对路径就比较靠谱,所以很少在连接字符串中去写相对地址,其实,你是不是觉得写绝对地址不好写还是觉得它可能会很长,你一般是放在应用程序下的 这个可以用其他方式来解决这个问题的。用Application类的静态属性StartupPath 来获取运行程序所在的目录,然后去用相对路径的方法转换到你需要的路径上,这样就比较灵活,你的数据库文件放在你运行的程序的相对路径可以方便遍历到的地方即可。用Path的类来解决很多路径问题。你了解一下吧。
晏兰梦02U

2020-11-18 · TA获得超过3506个赞
知道大有可为答主
回答量:9051
采纳率:74%
帮助的人:197万
展开全部
相对路径 是”相对“当前路径而言的,所以需要知道当前的路径是什么,如果当前的路径都不确定的话就无法做,首先需要确定下当前的路径是什么。知道后 需要了解"..\"这个符号的意思,两个点表示相对当前目录的父目录(上一级目录),需要再上一级的话就“..\..\”,然后后面跟其文件或子目录。例如d:\我的文档\Visual Studio 2008\Projects\WindowsFormsApplication3\WindowsFormsApplication3\Database1.mdf,这个是你文件的绝对地址,那么当当前目录为d:\我的文档\Visual Studio 2008\Projects\WindowsFormsApplication3\WindowsFormsApplication3\folder,(假设存在),那么相对该目录的相对路径为"..\Database1.mdf"
扩展资料
文件操作涉及一个非常重要的概念——文件路径。文件路径是指用来标识系统中文件存放位置的字符串。如:D:\\test.txt,表示在D盘根目录下存入test.txt文件。

文件路径分为绝对路径和相对路径。完整描述文件位置的路径就是绝对路径,相对于目标的位置就是相对路径。

绝对路径:是从盘符开始的路径,形如
C:\windows\system32\cmd.exe

相对路径:是从当前路径开始的路径,假如当前路径为C:\windows
要描述上述路径,只需输入
system32\cmd.exe

实际上,严格的相对路径写法应为
.\system32\cmd.exe
其中,.表示当前路径,在通道情况下可以省略,只有在特殊的情况下不能省略。

假如当前路径为c:\program files
要调用上述命令,则需要输入
..\windows\system32\cmd.exe
其中,..为父目录。

当前路径如果为c:\program files\common files
则需要输入
..\..\windows\system32\cmd.exe

在C#中,斜杠“\”是转义字符,表示路径是采用“\\”代替“\”,避免把这个字符解释为转义字符。如
“c:\\microfoft\\readme.txt”,也可以用“@”代替,在路径前加“@”符号,“\”就不会再被解释为转义符。如:@"c:\microfoft\readme.txt”。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
花江秋木8H
推荐于2017-11-24 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:140
采纳率:0%
帮助的人:40.2万
展开全部
你把它放到一个简单一点的路径下面不就可以了,或着是程序的相对路径下,如,你的程序在e:\a目录下,数据库就放在e:\a\db目录下,这样你就可以写@"a\db"就可以了。
更多追问追答
追问
我知道呀.可是如果我发给别人我的文件 那他也要放到e:\a目录下了..
追答
你吧文件夹打包,随便他放在哪个盘,哪个文件夹都没有关系啊。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式