2011-11-05 83 views
-2

很高興認識大家!我想從簡單的下面的代碼一欄獲得價值:Java SQL如何從列中獲取值?

String statement = "select rated,vote_count from iptv_media_source where channel_id= '" 
       + channelId + "'"; 
float rated = 0; 
int vote_count =0; 

try {   
    rs =Main.db.getCon().createStatement().executeQuery(statement); 
    rated = rating.getFloat("rated"); 
    vote_count = rating.getInt("vote_count");  
vote_count++; rated++; 

    statement = "UPDATE iptv_media_source SET rated = '"+rated+"' , vote_count = '"+vote_count+"' WHERE channel_id= '" + channelId + "'"; 
    Main.db.getCon().createStatement().executeUpdate(statement); 

} catch (SQLException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

UPDATE語句運行良好,但是這兩條線:

rated = rating.getFloat("rated"); 
vote_count = rating.getInt("vote_count"); 

了一些問題。謝謝你的回覆!

+1

這2條線遇到了什麼樣的問題?任何錯誤? – cherouvim

+1

@cherouvim:最可能的編譯器錯誤,因爲'rating'是無處宣告的。 –

回答

0

將這些更改爲以下內容。它可能工作:

rated = rs.getFloat(0); 
vote_count = rs.getInt(1); 
+0

OHH !!!非常感謝 !只是這一行,它花了我一天。你們真的是我的救世主。 –

+1

我看不到評級定義在哪裏。 – ziggy

+0

@ziggy我編輯了我的答案。我只是看到了提問者的問題並寫了它。謝謝你發現我的錯誤。 –

4

你首先必須繼續前進的結果設置爲指向第一條記錄的指針返回,檢索列值之前,這樣做是這樣的:

rs.next(); 

更多here關於ResultSet

0

您需要做rs.next()才能按照johnbk的說法來改進遊標。

另外,將rating.getFloat更改爲rs.getFloat,因爲它是錯誤的變量。

+0

非常感謝。它終於起作用了! –