5

While am using this code it shows 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);
   }        
}     

How can i recover from this exception?

David L.
  • 2,095
  • 23
  • 23

2 Answers2

2

Try to remove the wildcard from the sql and add it to the value:

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

Similar question here

Community
  • 1
  • 1
iTech
  • 18,192
  • 4
  • 57
  • 80
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);
   }        
}  

I think this will help you..

String strStudentName = TXT_STUDENTNAME.getText(); pst.setString(1,strStudentName );

sarath
  • 767
  • 12
  • 19