Java 从JTextField更新SQLite数据库行不工作,对数据库没有任何更改。所有连接良好,以前使用的连接已关闭
我正在使用JavaSwing和SQLite制作一个GUI应用程序(工资单系统)。我的问题是,当我尝试从JTextField更新SQLite数据库行时,它不会对数据库进行任何更改。但我的插入、查看和删除功能运行良好。 请帮忙。以前打开的连接、pst和结果集在使用后关闭Java 从JTextField更新SQLite数据库行不工作,对数据库没有任何更改。所有连接良好,以前使用的连接已关闭,java,mysql,sql,sqlite,jdbc,Java,Mysql,Sql,Sqlite,Jdbc,我正在使用JavaSwing和SQLite制作一个GUI应用程序(工资单系统)。我的问题是,当我尝试从JTextField更新SQLite数据库行时,它不会对数据库进行任何更改。但我的插入、查看和删除功能运行良好。 请帮忙。以前打开的连接、pst和结果集在使用后关闭 JButton btnUpdate = new JButton("Update"); btnUpdate.addActionListener(new ActionListener() { public voi
JButton btnUpdate = new JButton("Update");
btnUpdate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
String val1=name.getText();
String val2=e_id.getText();
String val3=email.getText();
String val4=emp_type.getText();
String val5=desig.getText();
String val6=dept.getText();
String val7=sex.getText();
String val8=h_no.getText();
String val9=st_name.getText();
String val10=city.getText();
String val11=state.getText();
String val12=pin_code.getText();
String val14=report_to.getText();
String val15=a_sal.getText();
String val16=bonus.getText();
String val17=m_sal.getText();
String val18=emp_sr.getText();
String sql="update emp set e_id='"+val2+"',name='"+name.getText()+"', email='"+val3+"',emp_type='"+val4+"',desig='"+val5+"',"
+ "dept='"+val6+"',sex='"+val7+"',h_no='"+val8+"', st_name = '"+val9+"', city = '"+val10+"', "
+ "state ='"+val11+"',pin_code ='"+val12+"', report_to ='"+val14+"', a_sal ='"+val15+"', "
+ "bonus ='"+val16+"', m_sal ='"+val17+"' where e_id='"+emp_sr.getText()+"' ";
PreparedStatement pst=connection.prepareStatement(sql);
pst.executeUpdate();
}catch(Exception e1) {JOptionPane.showMessageDialog(null, "Record Updated");
}finally{}
}
});
尝试打印查询,并与数据库一起检查条件语句是否有效?如果在堆栈跟踪后遇到任何异常tracee_id='“+emp_sr.getText()?e_id=e_id.getText()!
emp_sr.getText()
如果已经将其存储在变量中,为什么要在sql字符串中使用它?显示的事实是“记录已更新”“如果出现异常情况,则相当可疑。。。您可能希望打印异常。并且,请正确使用准备好的语句,不要将值连接到查询字符串中。使用参数。尝试打印查询并与数据库一起检查条件语句是否有效?如果在堆栈跟踪后遇到任何异常tracee_id='“+emp_sr.getText()?e_id=e_id.getText()!emp_sr.getText()
如果已经将其存储在变量中,为什么要在sql字符串中使用它?显示的事实是“记录已更新”“如果出现异常情况,则相当可疑。。。您可能希望打印异常。并且,请正确使用准备好的语句,不要将值连接到查询字符串中。使用参数。