2012-11-10 40 views
5

Trong khi đang sử dụng mã này nó cho thấy java.sql.SQLException Parameter index out of range (1 > number of parameters, which is 0):java.sql.SQLException Parameter index ra khỏi phạm vi

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); 
    }   
}  

Làm thế nào tôi có thể phục hồi từ ngoại lệ này?

Trả lời

2

Cố gắng loại bỏ các ký tự đại diện từ sql và thêm nó vào giá trị:

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

Similar question here

+0

thankz maaan itz working ... –

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); 
    }   
} 

Tôi nghĩ rằng điều này sẽ giúp bạn ..

Chuỗi strStudentName = TXT_STUDENTNAME.getText(); pst.setString (1, strStudentName);

Các vấn đề liên quan