杨老大的,同学们所说的神秘代码没附上,你的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
希望对你有帮助
|