博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

连接到 SQL Server 2005 时出现的问题

Posted on 2006-09-27 12:28  无言  阅读(976)  评论(0编辑  收藏  举报

在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)
解决方法:

你可能连接的数据库是SQL Server 2005 Express Edition,从"开始菜单"调出"配置工具"中的"SQL Server 外围应用配置器".然后单击"服务和连接外围应用配置器",选择数据库实例(默认是"SQLEXPRESS",选择database Engine的"远程连接"中的"本地连接和远程连接(用TCP/IP)",这样即可打开SQL Server 2005的远程连接(默认不允许).
其实你可以
配置文件:
<connectionStrings>
<add name="testDBConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=D:\wwwroot\sszTest1\App_Data\testDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

或者
<connectionStrings>
   <add name="testDBConnectionString" connectString="server=localhost;database=testDB;uid=sa;pwd=123" providerName="System.Data.SqlClient" />
</connectionStrings>
程序调用时:
SqlConnection sqlCon = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["testDBConnectionString"].ToString());//testDBConnectionString
或都直接生成connection:
SqlConnection sqlCon = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\wwwroot\\sszTest1\\App_Data\\testDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")
只要连接成功,你再生成DataSource应该不成问题.

 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)
首选请确认SQL SERVER EXPRSS已安装到本地计算机上,并且SQL SERVER (SQLEXPRESS)服务已经成功启动。如果问题仍然存在,可以尝试应打开“SQL Server 外围应用配置器”,选择“服务和连接的外围应用配置器”,然后将“远程连接”配置为“同时使用 TCP/IP 和 named pipes”

由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
将连接字符串中的“User Instance=True”修改为“User Instance=False”即可。
相关参考文章请参阅《非管理员用户实例》

无法将文件 'X:\Website\App_Data\Database.mdf' 作为数据库 ''. 附加。当前命令发生了严重错误。应放弃任何可能产生的结果。
需要为X分区以及X分区的子文件夹和文件分配Users组的“读取”权限。

尝试为文件 X:\Website\App_Data\Database.mdf 附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。
首选要确认已经为X分区以及X分区的子文件夹和文件分配了Users组的“读取”权限。如果问题仍然存在,请使用SQL Server Management Studio连接到SQLEXPRESS数据库实例,检查是否有名称是“Database”的数据库存在。如果有,分离同名数据库即可。

无法打开用户默认数据库。登录失败。
用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败。

数据库文件Database.mdf 的读写权限被设置成只有NETWORK SERVICE才具有。解决方法是先停止掉SQL SERVER (SQLEXPRESS)服务,然后从父项集成权限,再次启动SQL SERVER (SQLEXPRESS)服务即可。