我有一个存储过程,其中avg_pressure列为空。我必须创建一个方法来计算一行中各列的平均值,并将计算出的平均值放在相应的行和列中。我的平均计算方法是: -
public int arrayAverage() throws NumberFormatException, SQLException {
int sum = 0;
int count = 0;
getConnection();
String A= rs.getString("st1_vs1_bag1_rb");
String B= rs.getString("st1_vs1_bag2_rb");
String C= rs.getString("st1_vs1_bag4_rb");
for (int i = 0; i < a.length; i++)
{
for (int j = 0; j < a[i].length; j++)
{
sum +=Integer.parseInt(A+B+C);
count++;
}
我的表格数据来自以下方法: -
public String[][] getDbTable()
{
int i = 0;
String [][]a = new String[3600][16];
System.out.println("datetime is" +d);
System.out.println("datetime is" +currentDate);
try
{
con = getConnection();
String sql = "exec vcs_gauge @gauge_name=?,@first_rec_time=?,@last_rec_time=?";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("date is "+df.format(currentDate));
clstmt = con.prepareCall(sql);
clstmt.setString(1,"vs1_bag");
clstmt.setString(2, "2014-09-01 10:00:00");
clstmt.setString(3, "2014-09-01 11:00:00");
clstmt.execute();
rs = clstmt.getResultSet();
while (rs.next())
{
for(int j=0; j<16; j++)
{
a[i][j] = rs.getString(j+1);
}
i++;
}
}
catch( Exception e )
{
System.out.println("\nException in Display Bean in getDbTable(String code):"+e);
}
finally
{
closeConnection();
}
return a;
}
但是当我通过jsp运行arrayAverage()方法时,抛出了以下异常。 com.microsoft.sqlserver.jdbc.SQLServerException:结果集已关闭。
提前致谢。
答案 0 :(得分:0)
取决于您正在使用的池类型,当您关闭Connection时,对象Statement和ResultSet也将被关闭。
尝试在收集连接之前检索所需的数据。