我用Java 连接sqlserver2005数据库出现了一下问题:
Java连接语句:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestJDBC {

public static void main(String[] args) {
Connection conn=null;
Statement stms=null;
ResultSet rs=null;

  try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433:DatabaseName=sample","sa","123456");
stms=conn.createStatement();
rs=stms.executeQuery("select * from class3081");
while(rs.next()){
rs=stms.executeQuery("select * from class3081");

   } catch(ClassNotFoundException e){
e.printStackTrace();
} catch(SQLException e){
e.printStackTrace();
} finally{
try{
if(rs!=null)rs.close();
if(stms!=null)stms.close();
if(conn!=null)conn.close();
} catch(SQLException e){
e.printStackTrace();
}
}
}
}
运行出现的问题:
com.microsoft.sqlserver.jdbc.SQLServerException: 端口号 1433:DatabaseName=sample 无效。
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 TestJDBC.main(TestJDBC.java:15)改成conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=sample","sa","123456");
会出现:2010-5-23 16:26:18 com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin
警告:  ConnectionID:1 TransactionID:0x0000000000000000 Prelogin response packet not ed as a REPLY
com.microsoft.sqlserver.jdbc.SQLServerException: TDS 协议流无效。
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.throwInvalidTDS(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.Prelogin(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(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 TestJDBC.main(TestJDBC.java:15)
这样的错误。
本人配置的数据库端口设置ip地址里面 ip1和ip2都选择的是1433端口,外围配置的里本地和远程设置的是 TCP/IP
但是连接就是出现这样的错误。
我前天的时候突然之间可以用了,也查询到了语句记录,第二天早上又不可以用了,急求高手指点一下,感激不尽呀!!!!

解决方案 »

  1.   

    请注意这儿:1。while(rs.next()){
    rs=stms.executeQuery("select * from class3081");

    这句代码纯属多余
    2。 conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433DatabaseName=sample","sa","123456");
    把这个汉子分号改成英文分号
      

  2.   

    conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433:DatabaseName=sample","sa","123456");应该是:将1433后的:改成;
    conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=sample","sa","123456");
      

  3.   

    多谢大家的关心啊!感谢,今天我解决了上面的问题了。conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=sample","sa","123456");
    这样写是对的。用的是“;”号不是“:”号,出现上面的错误的原因是我要断网,我断网就可以了,一连上网就会出2010-5-24 16:15:31 com.microsoft.sqlserver.jdbc.SQLServerConnection Prelogin
    警告:  ConnectionID:1 TransactionID:0x0000000000000000 Prelogin response packet not ed as a REPLY
    com.microsoft.sqlserver.jdbc.SQLServerException: TDS 协议流无效。这样的错误。....................再次谢谢各位的关注~~~~谢了