2017-06-14 7 views
0
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
String hostip = hmodify.getText(); 
String source = sdmodify.getText(); 
String target = tdmodify.getText(); 
String login = lnmodify.getText(); 
String password = String.valueOf(pmodify.getPassword()); 
String scheduledOn = somodify.getText(); 
String scheduledAt = samodify.getText(); 
    Connection conn = null; 
    conn = MySqlConnect1.ConnectDB(); 
    PreparedStatement pstmt = null; 
    try { 
     String sql = "update host set target_dir=?, source_dir=?, login_name=?, password=?, backup_schedule=?, backup_time=? where host=?"; 
     Class.forName("com.mysql.jdbc.Driver"); 
     pstmt = conn.prepareStatement(sql); 
     pstmt.setString(1, hostip); 
     pstmt.setString(2, source); 
     pstmt.setString(3, target); 
     pstmt.setString(4, login); 
     pstmt.setString(5, password); 
     pstmt.setString(6, scheduledOn); 
     pstmt.setString(7, scheduledAt); 
     int i = pstmt.executeUpdate(); 
     if(i>0) 
     { 
      JOptionPane.showMessageDialog(null,"Data is Saved"); 
     } 
     else 
     { 
      JOptionPane.showMessageDialog(null,"Data is Not Saved"); 
     } 


    } catch (Exception e) { 
     JOptionPane.showMessageDialog(null, e); 
    } 
} 

更新クエリはmysqlでは完全に動作しますが、netbeansでは動作しません。エラーは表示されませんが、まだテーブルを更新していません。 where句に問題があるかもしれません。私を助けてください。更新クエリはmysqlでは動作しますが、ネットビーンでは動作しません

+0

(実際にあなたのwhere句である、特にhostipのため)これを試してみてくださいパラメータの順序が間違っているように私には思えます。 hostipパラメータは最後のパラメータにする必要がありますか? –

答えて

0

あなたは間違った場所に値を与えていると思います。

あなたのクエリが

String sql = "update host set target_dir=?, source_dir=?, 
login_name=?, password=?, backup_schedule=?, backup_time=? where host=?"; 

あり、以下に説明するホストのIPは「192.168.10.10」であると仮定し、文が pstmt.setString(1, hostip);を実行し、次のときに

update host set target_dir="192.168.10.10", source_dir=?, 
login_name=?, password=?, backup_schedule=?, backup_time=? where host=?; 

だから、その数は、対応することを確認してくださいになるだろう問い合わせますあなたのpstmt.setStringの文章で正しい値になっています

0

すべてのco lumns、

pstmt.setString(1, target); 
    pstmt.setString(2, source); 
    pstmt.setString(3, login); 
    pstmt.setString(4, password); 
    pstmt.setString(5, scheduledOn); 
    pstmt.setString(6, scheduledAt); 
    pstmt.setString(7, hostip); 
関連する問題