2017-06-14 58 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中工作,但不在netbeans中

+0

我看来,像参数的顺序是错误的。 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,请试试这个(特别是hostip这实际上是你的where条款)

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); 
相关问题