2016-05-03 38 views
-1

ここでは何が欠けているのか分かりませんが、何も私のために働いていないようです。私はいくつかのアプローチを試してみましたが、うまくいかなかったようです。何か案が?ここでMySQLをアップデートしてください:java.sql.SQLException:パラメータ8に値が指定されていません

は私のコードです:

btnUpdate = new JButton("Update"); 
btnUpdate.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     String pid = textIDField.getText(); 
     String fn = textFNameField.getText(); 
     String ln = textLNameField.getText(); 
     String add = addressField.getText(); 
     String city = cityField.getText(); 
     String phone = phoneField.getText(); 
     String mid = medIDField.getText(); 

     try{ 
      Connection conn = DriverManager.getConnection("dbinfo"); 
      String query = "UPDATE Patient SET PatID=?,FirstName=?,LastName=?,Address=?,City=?,Phone=?,MedID=? WHERE PatID=? AND MedID=?"; 

      PreparedStatement pst = conn.prepareStatement(query); 
      pst.setString(1, pid); 
      pst.setString(2, fn); 
      pst.setString(3, ln); 
      pst.setString(4, add); 
      pst.setString(5, city); 
      pst.setString(6, phone); 
      pst.setString(7, mid); 

      pst.executeUpdate(); 
      JOptionPane.showMessageDialog(null, "Patient Updated"); 
      pst.close(); 

     }catch(Exception ex){ 
      ex.printStackTrace(); 
     } 
    } 
}); 
+1

以下を確認していないしてください(where句の値)? – rgettman

+0

SQLには何個の '?'がありますか? ** 9 **。いくつのパラメータを設定していますか? **7**。 「パラメータ8に値が指定されていません」というエラーメッセージのどの部分が不明ですか? – Andreas

+0

pidとmidが2回使用されていることを知るには十分にスマートであることを期待しています。あなたは両方の時間を供給する必要があります。本当に、それらの値を変更しようとしないときに、その値を更新するのはなぜですか? – ghenghy

答えて

2

あなたがそう最後の二つのパラメータの値を設定し、あなたがパラメータ8と9の値を供給していなかったのはなぜ

try{ 
       Connection conn = DriverManager.getConnection("dbinfo"); 
       String query = "UPDATE Patient SET 
      PatID=?,FirstName=?,LastName=?,Address=?,City=?,Phone=?,MedID=? ` `WHERE PatID=? AND MedID=?"; 

       PreparedStatement pst = conn.prepareStatement(query); 
       pst.setString(1, pid); 
       pst.setString(2, fn); 
       pst.setString(3, ln); 
       pst.setString(4, add); 
       pst.setString(5, city); 
       pst.setString(6, phone); 
       pst.setString(7, mid); 
       pst.setString(8, mid);//this last two 
       pst.setString(9, pid); 

       pst.executeUpdate(); 
       JOptionPane.showMessageDialog(null, "Patient Updated"); 
       pst.close(); 

      }catch(Exception ex){ 
       ex.printStackTrace(); 
      } 
+0

ありがとうございます。私は私の問題を見つけた –

+0

答えとしてマークすることができますしてください – suulisin

関連する問題