次のコードを読んでください:
public class selectTable {
public static ResultSet rSet;
public static int total=0;
public static ResultSet onLoad_Opetations(Connection Conn, int rownum,String sql)
{
int rowNum=rownum;
int totalrec=0;
try
{
Conn=ConnectionODBC.getConnection();
Statement stmt = Conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
String sqlStmt = sql;
rSet = stmt.executeQuery(sqlStmt);
total = rSet.getRow();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
System.out.println("Total Number of Records="+totalrec);
return rSet;
}
}
次のコードでは実際の合計は表示されません。
total = rSet.getRow();
私の jTable には 4 つのレコードが表示されますが、合計は 0 です。デバッグで評価すると、次のように表示されます。
total=(int)0;
total=(int)4 ではなく、
rSet=last(); above from the code total = rSet.getRow();
すると、合計は正確な値 = 4 を示しますが、rSet は何も返しません。すると、jTable は空になります。更新してください。
ベストアンサー1
BalusC さんの答えは正しいです! ただし、ユーザー インスタンス変数に応じて次のように言及する必要があります。
rSet.last();
total = rSet.getRow();
そしてあなたが見逃しているもの
rSet.beforeFirst();
残りのコードは同じなので、希望する結果が得られます。