java.sql.SQLException: Paramètre index out of range (2 > nombre de paramètres, qui est 0)

public class Brothers extends javax.swing.JFrame {
/**
* declaring connection and SQL statement
*/
Connection cn;
Statement st;
PreparedStatement pstmt=null;
PreparedStatement pst;
ResultSet rs;
Object fname, mname, lname, bdate, nation, statusq,InstNo,  photo, combo, place, mimi; 
int status;
public Brothers() {        
dbconnect _db = new dbconnect();
/*//////////////the above is just to show that I have two prepared statement each for each sql statement that i have //////////*/
try {
Class.forName("com.mysql.jdbc.Driver");
//String unicode= "?useUnicode=yes&characterEncoding=UTF-8";
cn = DriverManager.getConnection(_db.getHost(), _db.getUsername(), _db.getPassword());
st=cn.createStatement(); 
try{
String Sql="INSERT INTO brothers(FirstName, MiddleName, LastName, BirthDate, BirthPlace, Nationality, InstituteNumber, Status, Picture) VALUES(?,?,?,?,?,?,?,?,?)";  
pstmt=cn.prepareStatement(Sql);
//pstmt.setString(1,txtTrial.getText());('?','?','?','?','?','?','?','?','?')
pstmt.setString(2,txtFirtsName.getText());
pstmt.setString(3,txtMiddleName.getText());
pstmt.setString(4,txtLastName.getText());
pstmt.setString(5,((JTextField)chooserBirthDate.getDateEditor().getUiComponent()).getText());
pstmt.setString(6,txtPlacBirth.getText());
String nations=combonation.getSelectedItem().toString();
pstmt.setString(7,nations);
pstmt.setString(8,txtInstituteNo.getText());
pstmt.setObject(9,combostatus.getSelectedItem());
pstmt.setBytes(10, person_image);
pstmt.executeUpdate(Sql);
JOptionPane.showMessageDialog(null, "Saving Successfull");
}
catch(Exception e){
//JOptionPane.showMessageDialog(null, e);
e.printStackTrace(); 
}  

Lorsque j'essaie de l'encart de données à l'aide du code ci-dessus, il déclenche une exception:

java.sql.SQLException: Parameter index out of range (10 > number of parameters, which is 9).
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3813)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3795)

J'ai essayé de regarder sur elle, mais je ne peux pas trouver le problème s'il vous plaît aider!!

quand je l'utilise au lieu de cela, je suis en mesure d'insérer les données, sauf pour la photo: try{ String addrecords="insert into frères(Prénom, MiddleName, Nom, date de Naissance, lieu de Naissance, Nationalité, InstituteNumber, Statut, Photo) values('"+ fname +"', '" + mname +"', '" + lname +"', '" + dave +"','" ++"', '" + isa +"', '" + InstNo +"', '" + statusq +"', '" + photo +"')"; //wrapField(); st.executeUpdate(addrecords); }
Vous devriez changer le titre de la question afin de correspondre à la le message de l'exception que vous mettez dans le corps de la question !

OriginalL'auteur Isaiah | 2013-04-24