title: java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 0)
body: <pre><code>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&amp;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(); 
      }  
  </code></pre>
  
  <p>When I try to inset data using the above code it throws an exception:</p>
  
  <pre><code>java.sql.SQLException: Parameter index out of range (10 &gt; 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)
  </code></pre>
  
  <p>I have tried to look over it but I cant find the problem please help!!</p>