2015-05-23 43 views
1

所以我连接到数据库,我想从表投票的奶牛数字显示它在条形图,但我得到错误“Java。 sql.SQLException:在结果的开始时设置”,但我已经和rs.next可有一个人帮我请java.sql.SQLException:结果集开始之前已经有rs.next

conn = DbCon.ConnectDb(); 
String sql = "SELECT * FROM votes"; 
try 
{ 
     pst = conn.prepareStatement(sql); 
     rs = pst.executeQuery(); 
     String cows = rs.getString("cows"); 
     if (rs.next()) 
     { 
      int cowss = Integer.parseInt(cows); 
      DefaultCategoryDataset dataset=new DefaultCategoryDataset(); 
      dataset.setValue(cowss ,"Votes", "Cows"); 
      dataset.setValue(20 ,"Votes", "Pigs"); 
      dataset.setValue(20 ,"Votes", "Dogs"); 
      dataset.setValue(50 ,"Votes", "Donkeys"); 
      JFreeChart chart = ChartFactory.createBarChart("Results", "", "Votes", dataset, PlotOrientation.VERTICAL , false, true, true); 
      ChartFrame frame = new ChartFrame("Results", chart); 
      frame.setVisible(true); 
      frame.setSize(450,350); 
      frame.setLocationRelativeTo(null); 
      frame.setResizable(false); 
    } 
} 
catch(Exception e) 
{ 
    JOptionPane.showMessageDialog(null, e); 
} 

回答

2

你需要调用ResultSet.next()之前读取列值,使光标指向第一行在结果中:

if (rs.next()) 
{ 
    String cows = rs.getString("cows"); 
    int cowss = Integer.parseInt(cows); 
    ... 

在这里你也不需要PreparedStatement - 没有参数化查询。您可以简单地使用正常的Statement

+0

哇:D谢谢你......我是java..ty的新手^^ –

相关问题