2016-04-02 11 views
1
String sql2="SELECT rates from room_type a,rooms b ,reservation r where a.type=b.type AND b.room_no=r.room_no AND r.cus_id='"+Cusid+"' group by r.cus_id"; 
pst=conn.prepareStatement(sql2); 
rs=pst.executeQuery(); 
rs.next(); 
double roomRates = Double.parseDouble(rs.getString("rates")); 

Açıklama yapmadan rs.next() yöntemini kullandım. Bu doğru mu? Programım çalıştırdığımda takılıyor. Nedeni "if" olmadan rs.next() kullandığından şüpheleniyorum.jdbc SQL deyimleri, java programında veri alır

+1

Are RS'inizin DAİMA en az bir satır içereceğinden emin misiniz? Verileri okumaya çalışılmadan önce okunacak bir satır olup olmadığını kontrol etmelisiniz. –

+0

"if" veya "while" neden değil, ancak herhangi bir satırın döndürülüp döndürülmediğini veya sonuna ulaştığınızda çok yararlıdır. Bir çizgi olmalı, ancak bir istisna atamaz ya da çözmek için başka adımlar atmazsınız. – maraca

+0

'Double.parseDouble (rs.getString (" rates "));' rs.getDouble ("rates") ile değiştirilmelidir; bir sayıyı bir sayıya dönüştürmek için bir sayıyı dönüştürmek anlamsızdır. –

cevap

0

kendinize bir iyilik yapın, bir süre döngü ile sonuç kümesini okumak veya senin her zaman bir satır döndürdü olacağını% 99,9 emin olsa bile, en azından koşullu: Eğer

double roomRates = 0.0; 
if(!rs.next()){ 
    //handle no result 
} else { 
    roomRates = rs.getDouble("rates") != null ? rs.getDouble("rates") : 0.0; 
} 
İlgili konular