2013-12-04 5 views
-1

ResultSet пуст, хотя запрос должен возвращать всю таблицу. Вот мой кодJDBC возвращает пустой набор результатов

try{ 
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
    con = DriverManager.getConnection("jdbc:sqlserver://localhost","somonjon","sa"); 
    con.setCatalog("ChatDBS"); 
    Statement stmt = null; 
    String SQL = "SELECT * FROM Login_chat"; 
    stmt = con.createStatement(); 
    try{ 
    System.out.println("trying execute query"); 
    rs = stmt.executeQuery(SQL); 
} 
catch(SQLException ex){ 
    ex.printStackTrace(); 
} 

это сообщение об ошибке: пытается выполнить запрос com.microsoft.sqlserver.jdbc.SQLServerException: результирующий набор не имеет текущей строки.

P.S. Okey guys Я не уверен, что это важно или нет, но это коды jButton1ActionPerformed event.

+0

вам нужно позвонить 'rs.next()', прежде чем вы сможете с ним работать. –

+1

Можете ли вы дать полный стек stacktrace –

+0

@a_horse_with_no_name проблема в том, что я не могу этого сделать, потому что ошибка возникает в rs = stmt.executeQuery (SQL); line, – MBP

ответ

0

AFAIK, вы не должны получать это исключение, если только вы не выполняете какую-либо операцию над ResultSet, как rs.next();

Что касается проблема касается, не может быть два сценария

  1. Вы не указывая на нужную базу (каталог)
  2. Вы не совершали сделки в базе данных.
0

Вам необходимо пройти через rs.

String column1; 
int column2; 
while (rs.next()) { 
    column1 = rs.getString("nameColumn1"); 
    column2 = rs.getInt("nameColumn2"); 
} 
0

Хорошо, в

String SQL = "SELECT * FROM Login_chat"; 

Вы должны добавить ";".

String SQL = "SELECT * FROM Login_chat;"; 

Попробуйте это!

+0

спасибо за ответ, но все равно это не сработало, он определенно находит DBS и таблицу, но ничего не возвращает. – MBP

+0

Нет, это неправильно. Oracle не будет принимать ';' как часть строки SQL через интерфейс JDBC. –

Смежные вопросы