2015-11-23 78 views
0

我想使用jTextField显示数据库中书籍的数量,但它一直显示此消息“索引1超出范围”。下面是我的代码中写道:如何在MS SQL中显示jTextField中的“count”查询结果

private void CountBooks(){ 
    try{ 
     String q = "USE BookstoreRecord; SELECT COUNT(Title) AS Tiltle FROM Books;"; 
     Connection conn = DBconnection.getCon(); 
     ResultSet rs; 
      PreparedStatement ps = conn.prepareStatement(q); 
      ps.setInt(1, 20); 
       rs = ps.executeQuery(); 
     if(rs.next()) 
     jTextField2.setText(Integer.toString(rs.getInt(1))); 
    }catch(Exception e){ 
     JOptionPane.showMessageDialog(null,e.getMessage()); 
    } 
} 
+0

我可以知道20是什么bookId? –

+0

请向我们展示表格描述 – aksappy

+2

其中是参数索引(?)插入值 –

回答

0

你可以做这样的事情,

我来自的someMethod()猜...

jTextField2.setText(CountBooks())); 

到CountBooks()...

//ps.setInt(1, 20); **/* remove it, it does not required for it... */** 

if(rs.next()) 
{ 
    return Integer.parseInt(rs.getString("Tiltle")); 
} 
+0

为什么我必须返回值并设置文本我不能在if语句中设置它吗? – tbj

+0

完全正确。你能行的。但通常像countBooks()这样的方法名称,所以想法是将该方法的代码变成更具体的像count而不是设置在其他地方(在这里,放入文本框)。 –

+0

我改变了它,现在它显示了其他消息“ResultSet没有当前的原始”,但它应该有。 – tbj