A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小石 黑马帝   /  2011-11-16 09:51  /  5590 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\MyDB.mdf;Integrated Security=True;User Instance=True")和
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=F:\ASPNET\1115\登录练习1\MyDB.mdf;Integrated Security=True;User Instance=True")里面AttachDBFileName的路径这个有什么区别的?为什么有时候会出现 项“AttachDBFileName”的值无效的问题

评分

参与人数 1技术分 +1 收起 理由
陈涛 + 1

查看全部评分

2 个回复

倒序浏览
黄威 黑马帝 2011-11-16 10:40:14
沙发
两条连接语句没有什么本质的区别,
AttachDBFilename=|DataDirectory|\MyDB.mdf 通过程序自动获取MyDB.mdf数据库的绝对路径,应在Program.cs文件中添加一段代码,winForm是没法识别DataDirectory的
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);
            }
AttachDBFilename=F:\ASPNET\1115\登录练习1\MyDB.mdf 这样写是对的,但是有缺点,如果你的数据库改变了位置,就得修改连接语句

评分

参与人数 1技术分 +1 收起 理由
陈涛 + 1

查看全部评分

回复 使用道具 举报
小石 黑马帝 2011-11-16 14:29:57
藤椅
黄威 发表于 2011-11-16 10:40
两条连接语句没有什么本质的区别,
AttachDBFilename=|DataDirectory|\MyDB.mdf 通过程序自动获取MyDB.mdf ...

添加那个代码我知道 老师强调很多遍了
关键是那两个写法有什么区别 为什么会有 项“AttachDBFileName”的值无效这个问题
谢谢解答{:3_57:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马