C#相对路径连接SQL server2000数据库

C#相对路径连接SQLserver2000数据库... C#相对路径连接SQL server2000数据库 展开
 我来答
feng316901
2010-11-07
知道答主
回答量:24
采纳率:0%
帮助的人:18.7万
展开全部
相对路径?什么东东?
SQL server 是服务器模式吧
如果在项目中用程序中嵌入mdf文件的方式来进行SQLServer数据库开发
那么可以这样

在ASP.net程序中只要将mdf文件放到项目的App_Data文件夹即可,在连接字符串中使用
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\CallCenter.mdf;Integrated Security=True;User Instance=True
做连接字符串即可。

winform 程序中
有一个比较很直接的想法,就是让程序去连接项目中的mdf文件,而不是连接bin/Debug下那个。
经过查询资料找到了修改方法,在Program.cs文件Main函数最开始加入如下代码:
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if (dataDir.EndsWith(@"\bin\Debug\")
|| dataDir.EndsWith(@"\bin\Release\"))
{
dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
}

原理简单分析:连接字符串中的DataDirectory的值就是通过AppDomain.CurrentDomain.SetData赋值过去的,如果当前程序的目录以"\bin\Debug\"或者"\bin\Release\"则认为它是运行在VisualStudio环境中,就取项目的目录然后赋值给DataDirectory这个key。既然是CurrentDomain.SetData,估计对于非默认AppDomain中的数据库连接代码可能会不起作用(只是猜测,没验证),这就要需要创建子AppDomain的时候再去赋值了。

上面的代码还是有一点潜在的bug的,比如正式的运行的时候exe被很杯具的放到了某个bin\Debug目录下,就会有问题,不过想想正式生产环境运行的时候肯定不会用这种AttachDbFilename方式,这种方式只存在于开发环境,因此也就睁一只眼闭一只眼了,呵呵。
rjieduan
2010-11-09 · 超过17用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:38.7万
展开全部
给你来个最简单的
“server=.;database=你的数据库名;uid=sa;pwd=sa”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
漠主浮沉C9756
2010-11-06 · TA获得超过301个赞
知道小有建树答主
回答量:519
采纳率:100%
帮助的人:259万
展开全部
相对路径连接SQL server2000数据库?没有这样弄的吧,你是SQL数据库文件吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式