5

このコードを使用している間、次のように表示されますjava.sql.SQLException Parameter index out of range (1 > number of parameters, which is 0)

private void cmd_searchActionPerformed(java.awt.event.ActionEvent evt) {                                           
try{

 String sql = "select * from STD where Name like '%?%' ";
      pst=conn.prepareStatement(sql);
      pst.setString(1,TXT_STUDENTNAME.getText());
      String value=TXT_STUDENTNAME.getText();
      rs=pst.executeQuery();
       jTable1.setModel(DbUtils.resultSetToTableModel(rs));

             }catch(Exception e){
       JOptionPane.showMessageDialog(null,e);
   }        
}     

この例外からどのように回復できますか?

4

2 に答える 2

2

SQL からワイルドカードを削除して値に追加してみてください。

String sql = "select * from STD where Name like ? ";
pst=conn.prepareStatement(sql);
pst.setString(1,"%"+TXT_STUDENTNAME.getText()+"%");

同様の質問はこちら

于 2012-11-10T05:41:23.243 に答える
0
private void cmd_searchActionPerformed(java.awt.event.ActionEvent evt) {                                           
try{

 String sql = "select * from STD where Name like '%?%' ";
      String strStudentName = TXT_STUDENTNAME.getText();
      pst=conn.prepareStatement(sql);
      pst.setString(1,strStudentName );
      rs=pst.executeQuery();
       jTable1.setModel(DbUtils.resultSetToTableModel(rs));

             }catch(Exception e){
       JOptionPane.showMessageDialog(null,e);
   }        
}  

これはあなたを助けると思います。

文字列strStudentName=TXT_STUDENTNAME.getText(); pst.setString(1、strStudentName);

于 2012-11-10T06:27:41.107 に答える