Это сводит меня с ума, потому что я не могу его понять. Я выполняю следующий код:Java SQL-запрос, не возвращающий действительный ResultSet
nameString = jcbClientList.getItemAt(jcbClientList.getSelectedIndex());
System.out.println(" Name String = " + nameString);
sql = "SELECT * FROM clients WHERE Name = \'" + nameString + "\'";
System.out.println(sql);
try {
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
while(rs.next()) {
clientID = rs.getInt(1);
}
}
catch(SQLException se) {
msg = "Problem getting client ID from DB \n" + se.getLocalizedMessage();
System.out.println(msg);
JOptionPane.showMessageDialog(null, msg);
}
Строка SQL построена правильно. Я проверил это, взяв вывод строки строки и вставив ее в другой код, и он отлично работает. Однако в этом контексте я получаю исключение:
Недопустимое состояние курсора - нет текущей строки.
Даже если я сменил sql на «SELECT * FROM clients», который должен вернуть 20 строк и в другом месте приложения, он по-прежнему дает ту же ошибку. Обрабатываемая база данных представляет собой встроенную базу данных Derby DB.
Возможный дубликат [Явное исключение Java SQL Execution Cursor State - нет текущей строки] (http://stackoverflow.com/questions/16576331/java-sql-exception-invalid-cursor-state-no-current-row) – DimaSan
Вы уверены, что код, который вы опубликовали, дает эту ошибку? Какая строка именно та, которая производит ошибку? Возможно, вы ищете не то место. – sstan
Вы уверены, что подключаетесь к правильной базе данных? – Dave