今天接到一个项目,和队里的人商量了一下说用MyEsclipse+SQL Server2005来开发
以前用的数据库是2000,用的JDBC的驱动方式没有问题!可是现在我连上了2005,连最简单一个查询都出异常……
这是为什么呢?是因为2000和2005的Jar包不一样?还是因为连接数据库的方式不一样?
刚才开我以为是端口的问题,可是看看端口05也是1433啊!
我的数据库服务器名是EVA,验证是SQL的,用户名sa,密码为空
下面是我的代码(我先说明,数据库没有问题,用ODBC能连!)public class Test {
public static void main(String[] args) throws Exception {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名";
String user = "sa";
String password = "";
Connection conn = DriverManager.getConnection(url);

String sql = "select * from star";
java.sql.PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
System.out.print(rs.getString(1)+"   ");
System.out.println(rs.getString(2));
}
}
}下面是出的异常:Exception in thread "main" 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 Test.main(Test.java:9)

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【evasunny2008】截止到2008-07-07 18:04:12的历史汇总数据(不包括此帖):
    发帖的总数量:10                       发帖的总分数:390                      
    结贴的总数量:10                       结贴的总分数:390                      
    无满意结贴数:3                        无满意结贴分:190                      
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:30.00 %               无满意结分率:48.72 %                  
    敬礼!
      

  2.   

    1,通过url连接的时候指定的服务器名称或者服务器地址不正确,这一点你可以通过ping来验证。
    2,指定的服务器上的sql server的服务没有启动,你可以通过sql server的查询工具来验证这个问题。
    3,指定端口错误,sql server的默认端口是1433。
    4,sql server没有提供tcp/ip的服务,你可以通过sql server的管理工具来查看这个问题。5,如果你的系统是 windows XP 或者 Windows 2003,那么你的sql server一定要升级到sp3以上.解决了如上问题一般就不会出现连接问题了。 
    这次主要是因为没有升级到sp3
      

  3.   

    楼上说的
    1、不太清楚,用ping怎么来ping啊!!!我只知道用ping是来ping网络的!!
    2、如果我的sql Server没有启动,我用odbc怎么可以呢??
    3、我用的端口是默认的啊……就是1433,而且我还看了!!
    4、我的系统是03,数据库是05,有sp包吗?
    还有没有知道的啊??来帮我想想吧!!
      

  4.   

    你是啥补丁 SP2呢?
    SP3 以上得都可以。
      

  5.   

    1中可能:三个.jar 文件没有添加进去.
    2中可能:SP3  数据库补丁没打
      

  6.   

    http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=86212D54-8488-481D-B46B-AF29BB18E1E5LZ 这里去下补丁。重新打下就好了。
      

  7.   

    http://www.microsoft.com/downloads/details.aspx?FamilyID=D07219B2-1E23-49C8-8F0C-63FA18F26D3A&displaylang=en
    Sqlserver 2005 sp2 补丁,打这个比较保险~~!!
      

  8.   

    2005 要用新驱动包 http://download.csdn.net/user/sagezk
      

  9.   

    楼上~~你说得这个驱动包 是 2000用得  3个 sql 得.jar文件么?
      

  10.   

    no suitable driver  你那是 这个问题得解决办法把????~~~LZ 测试好了,说下~~!! 以后出问题好直接调试了~~!! waiting ~~
      

  11.   

    同胞们……是不是我的jar包错了??我的jar包是以前用sql2000时候能用的jar包??不知道05能用不??
      

  12.   

    LZ,SQL2005的驱动类根2000的不一样2000:
         driverClassName =com.microsoft.jdbc.sqlserver.SQLServerDriver
         Url=jdbc:microsoft:sqlserver://localhost:1433;databaseName=test2005:
        driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver  
        url=jdbc:sqlserver://127.0.0.1:1433;databaseName=test
      

  13.   

    还忘了说了SQL2005的驱动包好像只一个就OK了
     包:sqljdbc.jar
      

  14.   

    是的是的……我已经试过了!!!
    打补丁好像没有什么用……
    首先,2000和2005的连接方式不一样,而且2005只用打一个jar包就OK了!!!!
    19楼说的是对着的……!!!