我想将2个数组相乘并显示到表中,但此代码不起作用,此处此代码,请帮助我
public void hitung ()
int hasil = 0;
long nilai2 ;
int quan = 0 ;
int quans = 0;
try {
String sql = ("SELECT tbl_masakan.nama_masakan, banyak, tbl_masakan.harga_masakan FROM tbl_masakan, tbl_det_pesanan WHERE id_det_pesanan = '"+ id +"' and tbl_det_pesanan.id_masakan = tbl_masakan.id_masakan ");
ResultSet rsuser= cn.stt.executeQuery(sql);
rsmetadata = rsuser.getMetaData();
while (rsuser.next()) {
int size = 0;
if (rsuser != null)
{
rsuser.beforeFirst();
rsuser.last();
size = rsuser.getRow();
}
String str = rsuser.getString(2);
quan = Integer.parseInt(str);
String strs = rsuser.getString(3);
quans = Integer.parseInt(strs);
hasil = hasil + (quan*quans);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.toString());
}
txt1.setText(String.valueOf(hasil));
}
答案 0 :(得分:0)
您的代码存在一些小问题。
我的猜测是你的问题的原因(尽管你实际上没有说过代码的输出是什么)是计算ResultSet的大小。注意它使光标指向最后一个位置(rsuser.last()),因此你的while(rsuser.next()){...}循环应该只运行一次。如果由于某种原因确实需要计算大小,则应该在while()循环之前执行此操作,并确保再次调用rsuser.beforeFirst(),以便在进入循环之前光标指向Resultset的开头。在这种情况下,您的代码应如下所示:
String sql = ...;
ResultSet rsuser= cn.stt.executeQuery(sql);
// calculate size
int size = 0;
if (rsuser.last()) {
size = rsuser.getRow();
rsuser.beforeFirst();
}
while (rsuser.next()) {
quan = rsuser.getInt(2);
quans = rsuser.getInt(3);
hasil = hasil + (quan*quans);
}
最后,请注意这种计算ResultSet大小的方法并非没有问题,所有这些都在本讨论中明确指出: How do I get the size of a java.sql.ResultSet?