各位好,我在用java连接sql server 2000时出现问题如下:
1.程序源码:
import java.sql.*; public class SqlTesting { 
    public static void main(String args[]) {  
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Northwind"; 
String user ="sa"; 
String password = ""; 
String sqlStr = "select CustomerID, CompanyName, ContactName from Customers"; 

try { 
Class.forName(driverName); 
System.out.println(""); 

Connection con = DriverManager.getConnection( url, user, password ); 
Statement st = con.createStatement(); 
ResultSet rs = st.executeQuery( sqlStr ); 

        while(rs.next()) { 
    System.out.print(rs.getString("CustomerID") + " "); 
    System.out.print(rs.getString("CompanyName") + " "); 
    System.out.println(rs.getString("ContactName")); 
        } 

rs.close(); 
st.close(); 
con.close(); 
} catch(Exception err) { 
        err.printStackTrace(System.out); 

    } 
}说明:
1、使用eclipse编辑运行;
2、sql server 2000 打了sp4;
3、eclipse项目里,已经通过构建路径加载了jdbc驱动程序的三个包:msbase.jar, mssqlserver.jar,msutil.jar;
可是还是出现问题: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 SqlTesting.main(SqlTesting.java:15)

解决方案 »

  1.   

    1. DatabaseName=>databasename?
    2. 数据库起来了么?
      

  2.   

    这是个老问题了,,很多人在开始用sql2000的时候都会出现这个问题,
    是因为你的数据库的 1433端口没开呀,,
    你用cmd下输入命令
    netstat -a -n
    看看,肯定没有监听1433端口,,
    而我们连接数据库的时候使用tcp/ip协议的,采用的端口是1433,而你在装数据库的时候默认的tcp/ip协议端口为零,,你可以看一下你装的数据库的
    下面的 SQL Server 网络实用工具,
    选择里面的 TCP/IP,点下面的 属性 看下你的默认端口 为 0具体的解决办法呢,是重装数据库,装的时候选择 自定义,将tcp/ip的端口改为1433
    再打上sp4的补丁,,就可以了,,注:老紫竹 就这个问题发过专题的
      

  3.   

    看这里吧,有详细介绍:
    http://www.java2000.net/viewthread.jsp?tid=394
      

  4.   

    百度搜索 Error establishing socket  就OK了
    我也遇到过这个问题~~3楼的也行的
      

  5.   

    第一:运行命令提示符,输入netstat-an 看有没有1433端口
    第二:注意必须打SP3的补丁,只打SP4不管用的。先打了SP3,再打SP4。
      

  6.   

    谢谢,
    DatabaseName=>databasename这样还是不行,
    数据库服务器启动了。
      

  7.   

    应该是打sp4比较好吧,我打了sp4。
      

  8.   

    应该是打sp4比较好吧,我打了sp。
      

  9.   

    谢谢
    1、运行命令提示符,输入netstat-an 后没有1433端口,怎样开启呢?
    2、必须得先打上sp3,再打sp4吗?