2013-05-05 68 views
1

即使我的表中存在该列,我也会在运行下列代码时收到错误“列未找到”。我使用access数据库,上访请JDBC从Access表中选择最大值

public class Trial1 { 
public static void main (String[]args){ 

      try{ 
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
       String url = "jdbc:odbc:SENSOR"; 
       String user = ""; 
       String pass = ""; 
       Connection con = DriverManager.getConnection(url,user,pass); 
       Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);       //stmt代表資料庫連接成功 


       ResultSet rs = stmt.executeQuery("select MAX(LevelNum) from NList"); 
       if (rs.next()){ 

        int w = rs.getInt("LevelNum"); 
        int x= 3;        

       double i = Math.pow(2, (w-x))-1; 
       System.out.printf("i is %f",i);} 


       stmt.close(); 
       con.close(); 

      }catch(Exception e) 
      { 
       System.out.println("Error" + e); 
      } 

} 

} 

回答

1

假设错误是,当你得到的结果,而当你执行查询比,你可能需要这样的事,而不是

// ... 
ResultSet rs = stmt.executeQuery("select MAX(LevelNum) as maxLevel from NList"); 
if (rs.next()) 
{ 
    int w = rs.getInt("maxLevel"); 

    // ... etc. 
} 
+0

谢谢@Roger Rowland,This works – user1304731 2013-05-05 14:28:27

0

试试这个。 ..

class Trial1 { 
public static void main (String[]args){ 

      try{ 
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
       String url = "jdbc:odbc:SENSOR"; 
       String user = ""; 
       String pass = ""; 
       Connection con = DriverManager.getConnection(url,user,pass); 
       Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);       


       ResultSet rs = stmt.executeQuery("select MAX(LevelNum) as LEVELNUM from NList"); 
       if (rs.next()){ 

        int w = rs.getInt("LEVELNUM"); 
        int x= 3;        

       double i = Math.pow(2, (w-x))-1; 
       System.out.printf("i is %f",i);} 


       stmt.close(); 
       con.close(); 

      }catch(Exception e) 
      { 
       System.out.println("Error" + e); 
      } 

} 
+0

Thanks @jWeavers – user1304731 2013-05-05 14:29:23