[英]Java SQL query failing to return valid 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。
我似乎記得遇到過沒有正確實現“ResultSet游標最初位於第一行之前”的部分的特定JDBC驅動程序。 我首先執行first()(或beforeFirst())調用,然后才開始調用next()。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.