我正在尝试更新或删除数据库中的数据,但它无法正常工作。我不知道昨天晚上我做了什么,同时困难试图修复另一个问题。而现在这不起作用。这是他们两个的代码。那是我的问题所在。当我使用delete命令时,它正在更新但是尝试更新表,它不是更新表。我的问题在哪里,我该如何解决这个问题?
private void cmd_deleteActionPerformed(java.awt.event.ActionEvent evt) {
String sql="delete from maintable where İsim =? ";
try{
pst=conn.prepareStatement(sql);
pst.setString(1, jTextField1.getText());
pst.execute();
JOptionPane.showMessageDialog(null, "Silindi");
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
Update_table();
}
这是为了更新:
private void cmd_updateActionPerformed(java.awt.event.ActionEvent evt) {
try{
String value1=jTextField1.getText();
String value2=jTextField2.getText();
String value3=jTextField3.getText();
String value4=jTextField4.getText();
String value5=jTextField5.getText();
String sql="update maintable set İsim='"+value1+"' ,Yaş ='"+value2+"',Konum ='"+value3+"',EPosta='"+value4+"',KatılımTarihi='"+value5+"' where İsim='"+value1+"' ";
pst=conn.prepareStatement(sql);
pst.execute();
JOptionPane.showMessageDialog(null, "Güncellendi");
}catch(Exception e){;
JOptionPane.showMessageDialog(null, e);
}
Update_table();
}
编辑:“pst = conn.prepareStatement(sql);”它给了我红色下划线错误,这是括号中的sql单词,并说“找不到符号”
pst=conn.prepareStatement("update maintable set İsim=?,Yaş=?,Konum=?,EPosta=?,KatılımTarihi=?"); pst.setString(1,value1);
pst.setString(2,value2);
pst.setString(3,value3);
pst.setString(4,value4);
pst.setString(5,value5);
pst=conn.prepareStatement(sql);
答案 0 :(得分:0)
private void cmd_deleteActionPerformed(java.awt.event.ActionEvent evt) {
String sql="delete from maintable where İsim =? ";
try{
pst=conn.prepareStatement(sql);
pst.setString(1, jTextField1.getText());
pst.executeUpdate();// **error was here**
JOptionPane.showMessageDialog(null, "Silindi");
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
Update_table();
}
这是用于更新
private void cmd_updateActionPerformed(java.awt.event.ActionEvent evt) {
try{
String value1=jTextField1.getText();
String value2=jTextField2.getText();
String value3=jTextField3.getText();
String value4=jTextField4.getText();
String value5=jTextField5.getText();
String sql="update maintable set İsim='"+value1+"' ,Yaş ='"+value2+"',Konum ='"+value3+"',EPosta='"+value4+"',KatılımTarihi='"+value5+"' where İsim='"+value1+"' ";
pst=conn.prepareStatement(sql);
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "Güncellendi");
}catch(Exception e){;
JOptionPane.showMessageDialog(null, e);
}
Update_table();
}
要插入,更新删除,您应该调用 executeUpdate()而不是执行()
注意这不是使用preparedStatement
的正确方法 String sql="update maintable set İsim='"+value1+"' ,Yaş ='"+value2+"',Konum ='"+value3+"',EPosta='"+value4+"',KatılımTarihi='"+value5+"' where İsim='"+value1+"' ";
pst=conn.prepareStatement(sql);
使用这种方式
pst=conn.prepareStatement("update maintable set İsim=?,Yaş=?,Konum=?,EPosta=?,KatılımTarihi=?"); pst.setString(1,value1);
pst.setString(2,value2);
pst.setString(3,value3);
pst.setString(4,value4);
pst.setString(5,value5);
pst.executeUpdate();
答案 1 :(得分:0)
使用pst.executeUpdate()代替pst.execute(),它会正常工作。
对于事务(INSERT,DELETE,UPDATE),请使用方法executeUpdate()。
要选择(SELECT)数据,请使用executeQuery()。