JDBC连接SQLServer2000的时候出现如下错误,SP3补丁已经打了,能连上数据库,但不能把数据表中的数据取出,在调SQLServer内部数据库里面的表的时候是可以取出数据的,但是不能调自己新建的数据库中的表的数据,程序关键代码如下:
import java.sql.*;
class test{
public static void main(String args[]){
 Connection con=null;
 Statement st;
 ResultSet rs;
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
//  String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Northwind";
    String user="sa";
    String pwd="123";
 try{
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
      System.out.println("driver is ok");
 con=DriverManager.getConnection(url,user,pwd);
 System.out.println("conection is ok");
                st=con.createStatement(); 
rs = st.executeQuery("SELECT fileID,fileName FROM file");
  while(rs.next())
System.out.println("fileName:"+"\t"+rs.getString("fileName"));
 System.out.println("fileID:"+"\t"+rs.getString("fileID"));  
 }
catch(Exception e)
    { 
       e.printStackTrace();
    }
当读取Northwind数据库时是可以读出该数据库Customers表中的数据,当读取自己新建的数据库中的表时显示以下错误:driver is ok
conection is ok
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在关键字 'file' 附近有语法错误。
    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 test.main(test.java:18)
本人刚刚接触这方面的东西,请大家不吝赐教!谢谢

解决方案 »

  1.   

    应该是SQL语句有问题。看一下表明或字段名是否正确。
      

  2.   

    你那sql写规范点,都小写试下。。
    再不然用select * from file看报错否.
    我记得jdbc连接sqlserver的时候,有两种连接方式,这只是微软的一种,还有另一种我忘了,你可以在网上查下,用那种连接,不过好像要换包。
      

  3.   

    file可能是关键字。。你换个名字。试试。。把这条sql语句:SELECT fileID,fileName FROM file 在数据库中执行。试试
    如果错误:说明是sql语句有问题。