import java.sql.*;
public class connect{ 
public static final String drivername = 
"com.microsoft.sqlserver.jdbc.SQLServerDriver";
public static final String url = 
"jdbc:sqlserver://localhost;DatabaseName=myReg";
public static final String user ="sa";
public static final String password="willfly";
public static void main( String[] args ) {
String queryString = "SELECT id FROM personID";
Connection conn = null; 
Statement st = null; 
ResultSet rs = null; 
try  { 
Class.forName( drivername );
conn = DriverManager.getConnection( url,user,password);
st = conn.createStatement();
rs = st.executeQuery( queryString );
while( rs.next() ){
System.out.println( "ID:" + rs.getString( "id" ) );
}
rs.close();
st.close();
conn.close();

catch (Throwable t){ 
t.printStackTrace( System.out );

finally  { 
try  { 
if (rs != null) 
rs.close(); 

catch(Exception e) {} 
try  { 
if (st != null) 
st.close(); 

catch(Exception e) {} 
try  { 
if (conn != null) 
conn.close(); 

catch (Exception e){} 
}
}
}错误是:
com.microsoft.sqlserver.jdbc.SQLServerException: 到主机  的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at testsqlserver2005.main(testsqlserver2005.java:43)补丁打过,把localhost换成IP加上端口仍然是这个错误,
各位大虾请帮忙

解决方案 »

  1.   

    把你的url改成这样
    public static final String url = 
    "jdbc:sqlserver://localhost:1433;DatabaseName=test";
    因为你的url上面没有写连接端口1433
      

  2.   

    还有你的驱动也加载错误了,改成这样
    public static final String drivername = 
    "com.microsoft.jdbc.sqlserver.SQLServerDriver";
      

  3.   

    参考我写的一个测试
    http://blog.csdn.net/zhouhmzju/archive/2006/06/01/768552.aspx
      

  4.   

    如果drivername,  url, user, password这四个核心参数没错, 而补丁也打过, 那只有参考zhouhmzju(孤身闯天涯)提供的信息了.
      

  5.   

    我连接本机(192.168.1.101)可接收到ResultSet,反而是连接局域网的另一台SQL2K(192.168.1.100)时出现:
    com.microsoft.sqlserver.jdbc.SQLServerException: 到主机  的 TCP/IP 连接失败
    但后来我将那台(192.168.1.100)winxp sp2 的防火墙和瑞星防火墙都关了(瑞星防火墙在服务里停用)就可以接受数据了,也没仔细研究,不只是否是防火墙的问题,要不你试试看能否解决问题!
      

  6.   

    Sql Server2000和2005的连接代码区别
       写连接代码时需要注意2000和2005的不同:
    1、连接SqlServer2000
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
      URL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tempdb";
    2、连接SqlServer2005
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
      URL = "jdbc:sqlserver://localhost:1433;DatabaseName=tempdb";注:详细使用请参考MS JDBC中的官方文档。