急急急!连不上服务器上的数据库

有两台电脑,一台电脑上没有装SQL SERVER2008数据库,但是我写了个链接数据库的程序,另一台服务器电脑上有SQL SERVER2008数据库,我想用我这台没有数据库的电脑去链接服务器电脑上的数据库,出现了问题。先声明:我已经把服务器电脑上的SQL 配置服务全部开启,防火墙也关了,链接代码如下:
Dim connectionstring As String
        connectionstring = "Data Source=ninghao-PC;" & "Network Library=DBMSSOCN;Initial Catalog=tianchounh;User ID=saassword=sa123456;"
        Dim databaseinfo As String = ""
        Dim con As New SqlConnection(connectionstring)
        con.Open()
        databaseinfo = "Server Version:" & con.ServerVersion & vbCrLf
        databaseinfo += "Connection Is:" & con.State.ToString & vbCrLf
        con.Close()
        databaseinfo &= "Now Connection Is:" & con.State.ToString
        Label1.Text = databaseinfo
出现的问题下所示:
在建立与服务器的连接时出错。在连接到SQL SERVER2005时,在默认的设置下SQL SERVR 不运行进行远程连接可能会导致此失败。(provider:TCP 提供程序,error:0-由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。)

作者: tianchounh   发布时间: 2011-09-07

可能1:估计装的是Express版,服务器名称原来是:Server=.把服务器名改为:Server=.\SqlExpress试一下。

<add name="ConnectionString" connectionString="Server=.\SqlExpress;DataBase=WLD;uid=sa;pwd=123456"/>


可能2:远程连接的外围配置没有配置好。
1. 数据库引擎没有启动。
有两种启动方式:
  (1)开始->程序->Microsoft SQL Server 2005->SQL Server 2005外围应用配置器,在打开的界面单击"服务的连接的外围应用配置器",
    在打开的界面中找到Database Engine,单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为自动,
    不要为手动,否则下次开机时又要手动启动;
  (2)可打开:开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager,选中SQL Server 2005服务中SQL Server(MSSQLSERVER)
    ,并单击工具栏中的"启动服务"按钮把服务状态改为启动;使用上面两种方式时,有时候在启动的时候可能会出现错误,不能启动,
    这时就要查看"SQL Server 2005配置管理器"中的SQL Server 2005网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.
    然后再执行上述一种方式操作就可以了.
2. 是否已经允许远程连接。
这个部分可以简单的分为4个方面,分别是在 SQL Server上启用远程连接、
启用SQL Server 浏览服务、在Windows 防火墙中为SQL Server 2005 创建例外和在Windows 防火墙中为“SQLBrowser”创建例外。
下面是几个具体的操作方式,摘自MSDN,个人觉得文章的黑体部分应当特别的一起我们的注意。  

在SQLServer 实例上启用远程连接
1.指向“开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器”
2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器”
3.然后单击展开“数据库引擎”, 选中“远程连接”,在右边选中“本地连接和远程连接”,再选择要使用的协议,( 这个地方应当启用TCP/IP 和命名管道服务!)单击“应用”,
您会看到下消息:“直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。”,单击“确定”按钮返回4.展开“数据库引擎”, 选中“服务”,在右边单击“停止”,
等到 MSSQLSERVER 服务停止,然后单击“启动”,重新启动MSSQLSERVER 服务。

启用 SQLServer 浏览器服务
1.指向“开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器”
2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器”
3.然后单击展开“SQL Server Browser”, 选中“服务”,在右边“启动类型”选择“自动”,再单击“启动”,单击“确定”按钮返回

在Windows 防火墙中为“SQL Server 2005”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”
2.在“添加程序窗口”中单击“浏览”
3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\ MSSQL.1 \MSSQL\Binn\sqlservr.exe”,
单击“确定”返回 注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。 MSSQL.1 是占位符,对应数据库实例ID。
4.对每个需要打开远程访问的SQL Server 2005 实例,重复步骤 1 至 3。

在Windows 防火墙中为“SQLBrowser”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”
2.在“添加程序窗口”中单击“浏览”
3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe”,单击“确定”返回 注意 :
路径可能会根据 SQL Server 2005 安装不同而不同。在使用.NET开发进行时,会遇到使用连接字符串连接SQL Server 2005数据库使用机器名称和localhost都能连接,
但是使用IP地址却不能连接的问题,解决的办法是在SQL Server实例上启用本地和远程连接,并且在选择协议的时候使用TCP/IP和命名管道服务即可解决。

可能3:服务器数据库没有,或者登录不了远程服务器数据。
(1)在本地登录远程服务器,如果能登录,进到数据库里面查看数据库的表,键是否完整(有些FTP上传后数据库的一些键会不存在)
(2)查看连接字符串是否正确:这里有个示例供参考(一般购买的服务器空间会提供连接字符串)

<add name="ConnectionString" connectionString="Server=56.57.96.219,1433;User ID=43345;pwd=3453455;Initial Catalog=数据库名字"/>

作者: 小火车   发布时间: 2011-09-08