2014-02-15 33 views
0

我試圖編寫一個應用程序,它從java中的ms訪問中檢索數據。這是我的代碼:以ms訪問Java數據檢索「未找到列」錯誤

import java.sql.*; 

public class testdb { 
    public static void main(String[] args) { 
     String path = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + "C:\\smartphone.accdb"; 
     Statement statement; 
     ResultSet rs; 
     Connection con; 
     String sql = "SELECT dev_name,points FROM list"; 

     try { 
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 

      con = DriverManager.getConnection(path, "", ""); 

      System.out.println("Connected"); 

      statement = con.createStatement(); 
      statement.executeQuery(sql); 
      rs = statement.getResultSet(); 
      System.out.println(rs.getString("SELECT dev_name FROM list")); 
     } catch (Exception ex) { 
      System.err.println("Got an exception"); 
      System.err.println(ex.getMessage()); 
     } 
    } 
} 

它正確編譯並給出了與輸出:

Connected 
Got an exception 
Column not found 

請幫助。

+0

嘗試僅使用'rs.getString(「dev_name」)'。您只需指定要檢索的列名稱。您還需要至少執行一個'rs.next()',然後才能從ResultSet中檢索數據。 –

+0

謝謝隊友!但是放置整個select語句是錯誤的嗎?而且我也不知道next()函數,所以感謝你提供這些信息。 – dimmed

回答

1

變化

rs.getString("SELECT dev_name FROM list") 

rs.getString("dev_name") 

而且iterare使用

while(rs.next()) 

要重複使用它的next()方法的結果集ResultSet中。如果ResultSet具有下一條記錄,則next()方法返回true,並移動ResultSet指向下一條記錄。如果沒有更多記錄,則next()返回false。

+0

哇感謝的人,它的工作!我已經試過 rs.getString(「dev_name」) 之前,但它仍然給我錯誤。我不知道什麼是錯,但是這對我有幫助。謝謝! – dimmed

+0

wlc @ user3314263 – Kick