我最近老是连接不上SQLServer2000,代码如下:
import java.sql.*;public class testSQL {
public static void main(String[] args) { 
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; 
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; databasename=mapTopo"; 
String userName = "sa"; 
String userPwd = "sa"; 
  try { 
Class.forName(driverName); 
Connection con= DriverManager.getConnection(dbURL, userName, userPwd); 
System.out.println("Connection Successful!"); 

Statement smt= con.createStatement();
ResultSet rst=smt.executeQuery("select * from nodeTable");
while(rst.next()){
System.out.println(rst.getString("nodeID"));
System.out.println(rst.getString("nodeName"));
}
} catch(Exception e) { 
e.printStackTrace(); 

}
}
数据库表存在,应该没问题。运行结果如下:
Connection Successful!
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'nodeTable' 无效。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source)
at testSQL.main(testSQL.java:17)
这个问题应该怎么解决?请高手指教啊,急死我了!

解决方案 »

  1.   

    是不是数据源没配置好?
    DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
       con =DriverManager.getConnection("jdbc:odbc:Persons");
    我用如下的代码连接2000就可以了。
      

  2.   

    把sql改成select * from [nodeTable] 就可以了
      

  3.   

    String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; databasename=mapTopo";
    把上面这段";"与"databasename"之间的空格去掉
      

  4.   

    既然能显示Connection Successful! 那就说明正常连接到数据库,那么数据源配置,数据库连接都没问题。Java支持标准的sql,那么把nodeTable改成[nodeTable]应该就没有必要了。建议LZ查查看表名有没有写错,那个表是否存在。
      

  5.   

    欢迎加入我们的QQ群,大家共同学习,共同提高!程序员中的战斗机,QQ群号:84505938
      

  6.   

    String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; databasename=mapTopo"; 
    1.把 databasename=""你数据库的名字  试试
    2.看看你的数据库有没有打开
      

  7.   

    String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; databasename=mapTopo"; 
    1.把 databasename=""你数据库的名字  试试
    2.看看你的数据库有没有打开
      

  8.   

    String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; databasename=mapTopo"; databasename 前的空格删了就好了。