Вы можете попробовать что-то вроде этого. Дай мне знать, если это работает.
public double calRoomCharges(int cusId)
{
String totRoom = "";
double totalCharge = 0.0;
try
{
//Get Rates
String sql="SELECT nights FROM reservation where cus_id ='"+cusId+"'";
pst=conn.prepareStatement(sql);
rs=pst.executeQuery();
int roomRates = 0;
if(!rs.next())
{
//handle no result
}
else
{
roomRates = rs.getInt("nights") ;
totalCharge = roomRates; // calculate total charge
String totRoom = String.valueOf(totalCharge);
rc.setText(totRoom);
}
}
catch(Exception e){
System.out.prtintln(e.getMessage());
}
return totalCharge;
}
Вы не используете Java 7+? Если да, вы должны использовать оператор try-with-resources (как «PreparedStatement», так и «ResultSet» для реализации «AutoCloseable»); здесь вы не закрываете никаких ресурсов ... Также вы возвращаете 'double', а' totRoom' - 'String'. Это не сработает ... И, наконец, пустой блок 'catch' - очень и очень плохая идея. – fge
Вы можете объявить переменную totRoom перед тем, как попробовать установить ее в try, а затем вернуть ее после catch – Yan
. Я просто размещаю там, что ваш SQL-оператор широко открыт для SQL Injection ... – ryekayo