2011-11-05 72 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

非常感谢。它终于起作用了! –