這讓我很生氣,因爲我無法理解它。我正在執行以下代碼: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字符串是正確的。我已經檢查了該字符串的System.out.println(sql)
輸出並將其粘貼到其他代碼中,並且它完美地工作。然而,在這種情況下,我收到一個例外:
遊標狀態無效 - 沒有當前行。
即使我將sql更改爲'SELECT * FROM clients',它應該返回20行並在應用程序的其他位置執行,但它仍會給出相同的錯誤。被解決的數據庫是一個嵌入式Derby DB。
可能的[Java SQL Exception Exception Invalid Cursor State - no current row]重複(http://stackoverflow.com/questions/16576331/java-sql-exception-invalid-cursor-state-no-current-row) – DimaSan
你確定你發佈的代碼給出了這個錯誤嗎?哪一行恰恰是產生錯誤的行?也許你看錯了地方。 – sstan
你確定要連接到正確的數據庫嗎? – Dave