代码:
try{
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
   con = java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=pubs","sa","sa"); //12行
 }catch(Exception e){
  e.printStackTrace();
 }异常:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.eversonsoft.struts.PersonManager.openConnection(PersonManager.java:12)

解决方案 »

  1.   

    不知LZ打了SP4补丁没.....
    或者是端口没有打开
      

  2.   

    是sqlserver2000吧?打个sp2的补丁
      

  3.   

    给你个总结:
    数据库连接失败的原因有多种。包括下列原因:
        *SQL Server 无法启用 TCP/IP,或者指定的服务器或端口号不正确。验证 SQL Server 是否正通过指定服务器和端口上的 TCP/IP 进行侦听。系统可能会报告这种情况,并引发类似于“登录已经失败。对主机的 TCP/IP 连接已失败。”的异常。这指示下列内容之一:
        *已安装了 SQL Server,但并没有针对 SQL Server 将 TCP/IP 作为网络协议进行安装(通过使用 SQL Server 2000 的 SQL Server 网络实用工具,或者使用 SQL Server 2005 的 SQL Server 配置管理器)。
        *已作为 SQL Server 协议安装了 TCP/IP,但是它并没有侦听 JDBC 连接 URL 中指定的端口。默认端口为 1433,但可以在安装产品时将 SQL Server 配置为侦听任意端口。请确保 SQL Server 正在侦听端口 1433。或者,如果端口已更改,则应确保 JDBC 连接 URL 中指定的端口与更改的端口相匹配。有关 JDBC 连接 URL 的详细信息,请参阅创建连接 URL。
        *JDBC 连接 URL 中指定的计算机地址没有引用在其中安装并启动了 SQL Server 的服务器。
        *无法执行客户端和运行 SQL Server 的服务器之间的 TCP/IP 的网络操作。可以使用 telnet 检查 TCP/IP 与 SQL Server 的连接性。例如,在命令提示符下,键入 telnet 192.168.0.0 1433 ,此处 192.168.0.0 是运行 SQL Server 的计算机地址,而 1433 是其侦听的端口。如果收到“Telnet 无法连接”的消息,则 TCP/IP 没有侦听 SQL Server 连接的端口。对 SQL Server 2000 使用 SQL Server 网络实用工具,或者对 SQL Server 2005 使用 SQL Server 配置管理器,以确保将 SQL Server 配置为在端口 1433 使用 TCP/IP。
        *未在防火墙中打开服务器使用的端口。这包括服务器使用的端口或与该服务器的指定实例相关联的端口(可选)。
        *指定的数据库名称不正确。确保所登录的 SQL Server 数据库是现有的数据库。
        *用户名或密码不正确。确保提供正确的值。
        *使用 SQL Server 身份验证时,JDBC 驱动程序要求安装带有 SQL Server 身份验证的 SQL Server,但在默认情况下,系统不会安装带有此功能的组件。在安装或配置 SQL Server 实例时,应确保带有此选项。当然还得确保sp4补丁已经打好才行。
      

  4.   


    看看大版主的精华帖~
    http://topic.csdn.net/u/20080405/06/fc8e48d0-b84c-4642-88f0-390a9295a27e.html?1698261955
      

  5.   

    不好意思。。打了sp3包不能用,重装sqlserver 再重装sp4包,现在能够连接了,谢谢各位好心帮忙。