我想从我的数据库中逐个检索行,并在我制作的 GUI 表单中存在的 jtextfields 中查看它。我能够检索第一行,但永远无法检索第二行、第三行或第四行等。
请帮忙。如果您需要更多信息,请询问
String SQL = "select CATEGORY,ITEM,QTY,Avg_Price from (select CATEGORY,ITEM,QTY,AVG_PRICE, rownum rw from final_inv) where rw ="+i+"";
rs = stmt.executeQuery(SQL);
if(rs.next()){
jTextField1.setText(rs.getString(1));
jTextField2.setText(rs.getString(2));
jTextField3.setText(rs.getString(3));
jTextField4.setText(rs.getString(4));
}
i++;
rs=stmt.executeQuery(SQL);
if(rs.next()){
jTextField5.setText(rs.getString(1));
jTextField6.setText(rs.getString(2));
jTextField7.setText(rs.getString(3));
jTextField8.setText(rs.getString(4));
}
我是Java的新手,所以请原谅我的新手错误
不要在循环中直接将文本设置为您的jTextField
意图,否则您的jTextField
将不会更新。但是在变量中临时处理这些文本,然后在循环结束后将其设置为 jTextField
。并且不要使用'if'
而是'while'
,因为您想迭代数据库中的每一行
String SQL = "select CATEGORY,ITEM,QTY,Avg_Price from (select CATEGORY,ITEM,QTY,AVG_PRICE, rownum rw from final_inv) where rw ="+i+"";
String text [] = new String [10]; // just for temp the strings
rs = stmt.executeQuery(SQL);
while(rs.next()){
text[1] +=rs.getString(1);
text[2] +=rs.getString(2);
text[3] +=rs.getString(3);
text[4] +=rs.getString(4);
}
jTextField1.setText(rs.getString(text[1] ));
jTextField2.setText(rs.getString(text[2] ));
jTextField3.setText(rs.getString(text[3] ));
jTextField4.setText(rs.getString(text[4] ));
i++;
rs=stmt.executeQuery(SQL);
while (rs.next()){
text[1] +=rs.getString(1);
text[2] +=rs.getString(2);
text[3] +=rs.getString(3);
text[4] +=rs.getString(4);
}
jTextField5.setText(rs.getString(text[1]));
jTextField6.setText(rs.getString(text[2]));
jTextField7.setText(rs.getString(text[3]));
jTextField8.setText(rs.getString(text[4]));