2014-02-15 3 views
0

java에서 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")'을 사용해보십시오. 검색하려는 열 이름 만 지정하면됩니다. ResultSet에서 데이터를 검색하려면 적어도 하나의'rs.next()'를 수행해야합니다. –

+0

감사합니다. 전체 select 문을 넣는 것은 잘못입니까? 또한 그 next() 함수에 대해 알지 못해서 그 정보를 보내 주셔서 감사합니다. – dimmed

답변

1

변경

rs.getString("SELECT dev_name FROM list") 

rs.getString("dev_name") 

에 또한 그 다음() 메소드를 사용하여 결과 집합을 반복하기

while(rs.next()) 

사용 된 ResultSet를 iterare. ResultSet에 다음 레코드가 있으면 next() 메서드가 true를 반환하고 다음 레코드를 가리 키도록 ResultSet을 이동합니다. 레코드가 더 이상 없으면 next()는 false를 반환합니다.

+0

와우 감사합니다. 나는 이미 rs.getString ("dev_name") 을 시도했지만 여전히 오류가 발생합니다. 나는 무엇이 잘못 되었는가를 알지 못하지만 이것은 나를 도와 준다. 감사! – dimmed

+0

wlc @ user3314263 – Kick

관련 문제