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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘豪 中级黑马   /  2012-6-9 16:44  /  1508 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

关于连接字符串的问题
当SqlConnection conn = new SqlConnection(@"Data Source=.

\SQLEXPRESS;AttachDBFilename=|DataDirectory|

\FirstDataBase.mdf;Integrated Security=True;User Instance=True");老是报

运行错误,搞的我好郁闷,后来把|DataDirectory|改成实际路径就没问题了, using

(SqlConnection conn = new SqlConnection(@"Data Source=.

\SQLEXPRESS;AttachDBFilename=C:\Users\liuhao\Desktop\ADO.NET

\FirstDataBase\FirstDataBase.mdf;Integrated Security=True;User

Instance=True"))
最郁闷的是改回原来的又能用
我不知道知道是什么原因,暂时先拿实际路径用着。
求高手支招,到底是怎么回事?

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

3 个回复

倒序浏览
杨老大的,同学们所说的神秘代码没附上,你的SqlConnection conn = new SqlConnection(@"Data Source=.

\SQLEXPRESS;AttachDBFilename=|DataDirectory|

\FirstDataBase.mdf;Integrated Security=True;User Instance=True");

DataDirectory 没指定域,
杨老师的是先经过下面的神秘代码指定
string dateDir = AppDomain.CurrentDomain.BaseDirectory;// 基目录(项目文件名)
            if (dateDir.EndsWith(@"\bin\Debug\")
                || dateDir.EndsWith(@"\bin\Release\"))
            {
                dateDir = System.IO.Directory.GetParent(dateDir).Parent.Parent.FullName;
                AppDomain.CurrentDomain.SetData("DataDirectory", dateDir);
            }
有这代码指定,才可以用你上面的那个连接字符串是正确的,

不过,我一般都是放在配置文件 里,配置文件 里的字符串也是这个,连接OK。


连接SQL Server数据库
  • provider=SQLOLEDB;  
  • Data Source=服务器名;  
  • Initial Catalog=数据库名;  
  • uid=用户;  
  • pwd=密码
使用SqlConnection对象连接SQL Server数据库
声明:以下连接的属性都可以参考“SQL Server 数据库连接字符串参数一览表”取它的别名;除了必须设置的属性以外还可以设置其他辅助的属性。如Connect Timeout、Encrypt等
设置数据库文件路径的方法:
1.使用绝对路径:“AttachDbFilename=D:\\Solution1\\Web\\App_Data\\data.mdf”
2.使用服务器相对路径:“AttachDbFilename=”+Server.MapPath(“\\App_Data\\data.mdf”)
3.使用最简单的相对路径:“AttachDbFilename=|DataDirectory|\\data.mdf”
推荐使用第3种方式,“|DataDirectory|”代表ASP.NET项目里自动创建的App_Data文件夹
1.以SQL Server验证模式连接SQLServer
(1)以数据库名连接方式
  • Server=服务器名;  
  • Database=数据库名称;  
  • User ID=用户名;  
  • Password=密码
或者(使用缩写与别名)
  • Server=服务器名;   
  • Initial Catalog=数据库名称;  
  • Uid=用户;  
  • Pwd=密码
(2)以数据库文件完整路径连接方式
“Serve=服务器名;AttachDbFilename=数据库文件路径;User ID=用户名;Password=密码”
示例:
  • Server=.\SQLEXPRESS; Database=DatabaseName; User ID =sa; Password=abc123”  
  • Server=.\SQLEXPRESS; Initial Catalog =DatabaseName; Uid =sa; Pwd=abc123”  
  • Server=(local)\SQLEXPRESS; AttachDbFilename=D:\\Solution1\\Web\\App_Data\\data.mdf;
  • User ID =sa; Password=abc123”
备注:密码可以为空。
2.以Windows 验证模式连接SQL Server
(1)以数据库名连接方式
  • Server=服务器名;  
  • Database=数据库名称;  
  • Integrated Security=SSPI
(2)以数据库文件完整路径连接方式
“Serve=服务器名;AttachDbFilename=数据库文件路径; Integrated Security=true”
示例:
  • Server=服务器名;  
  • Database=数据库名称;  
  • Integrated Security=SSPI  
  • Server=(local)\SQLEXPRESS;   
  • AttachDbFilename=D:\\Solution1\\Web\\App_Data\\data.mdf;  
  • Integrated Security=true”
备注:SSPI即为true



希望对你有帮助


评分

参与人数 2技术分 +1 黑马币 +2 收起 理由
郑文 + 1
ren1015 + 2 赞一个!

查看全部评分

回复 使用道具 举报
你的数据库是放在App_Data里面吗%……

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
我附加了那些语句,但是就有些时候会运行错误,所以才郁闷啊。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马