package supplier_info_manage;
import java.awt.Choice;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.SQLException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import DB_connection.DBOperate;
public class update_supplier extends JFrame {
JLabel JLID,JLname,JLtel,JLzip_code,JLemail,JLaddress;
JTextField JTFID,JTFname,JTFtel,JTFemail,JTFaddress,JTFzip_code;
Choice sex;
JButton confirm,reset;
String newname,newtel,newemail,newcode,newaddress,newdescription,sid;
public update_supplier(){
setResizable(false);
setLayout(new FlowLayout());
setTitle("供应商信息修改");
setSize(400,500);
JPanel p0=new JPanel();
JLID=new JLabel("供应商ID:");
JTFID=new JTextField(20);
String str0="请输入要修改的供应商ID";
JTFID.setText(str0);
p0.add(JLID);
p0.add(JTFID);
add(p0);
JPanel p1=new JPanel();
JLname=new JLabel("名称:");
JTFname=new JTextField(20);
String str1="请输入新名称";
JTFname.setText(str1);
p1.add(JLname);
p1.add(JTFname);
add(p1);
JPanel p2=new JPanel();
JLtel=new JLabel("手机:");
JTFtel=new JTextField(20);
String str2="请输入新手机";
JTFtel.setText(str2);
p2.add(JLtel);
p2.add(JTFtel);
add(p2);
JPanel p3=new JPanel();
JLemail=new JLabel("邮箱:");
JTFemail=new JTextField(20);
String str3="请输入新邮箱";
JTFemail.setText(str3);
p3.add(JLemail);
p3.add(JTFemail);
add(p3);
JPanel p4=new JPanel();
JLzip_code=new JLabel("邮编:");
JTFzip_code=new JTextField(20);
String str4="请输入新邮编";
JTFzip_code.setText(str4);
p4.add(JLzip_code);
p4.add(JTFzip_code);
add(p4);
JPanel p5=new JPanel();
JLaddress=new JLabel("地址:");
JTFaddress=new JTextField(20);
String str5="请输入新地址";
JTFaddress.setText(str5);
p5.add(JLaddress);
p5.add(JTFaddress);
add(p5);
JPanel p6=new JPanel();
TextArea self_description=new TextArea("da",10,50,TextArea.SCROLLBARS_VERTICAL_ONLY);
String str6="请输入新供应商描述";
self_description.setText(str6);
p6.add(self_description);
add(p6);
JPanel p7=new JPanel();
confirm=new JButton("确定");
reset=new JButton("重置");
p7.add(confirm);
p7.add(reset);
add(p7);
reset.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JTFname.setText("");
JTFtel.setText("");
JTFemail.setText("");
JTFzip_code.setText("");
JTFaddress.setText("");
self_description.setText("");
}
});
confirm.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
try {
sid=new String(JTFID.getText());
newname=new String(JTFname.getText());
newtel=new String(JTFtel.getText());
newemail=new String(JTFemail.getText());
newaddress=new String(JTFaddress.getText());
newcode=new String(JTFzip_code.getText());
newdescription=new String(self_description.getText());
int id=Integer.parseInt(sid);
if(sid.length()==0){
JOptionPane.showMessageDialog(null, "请输入要修改信息的客户ID");
}else if(newname.equals("")||newtel.equals("")||newemail.equals("")||newaddress.equals("")||newcode.equals("")||newdescription.equals("")){
JOptionPane.showMessageDialog(null, "请输入完整的客户信息");
}else{
java.sql.Statement stat=DBOperate.openStatement();
//获取当前密码
//
String sql="update Coustomer set Supplier_name='"+newname+"',Supplier_tel='"+newtel+"',Supplier_email='"+newemail+"',Supplier_code='"+newcode+"',Supplier_address='"+newaddress+"',Supplier_description='"+newdescription+"' where Supplier_id='+id+' ";
stat.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "客户信息修改成功");
setVisible(false);
}
} catch (SQLException e1) {
// e1.printStackTrace();
JOptionPane.showMessageDialog(null, "此ID不存在");
}
}
});
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
update_supplier upsupplier=new update_supplier();
upsupplier.setVisible(true);
}
}
在这个项目中,有个功能模块是要基于供应商ID来修改供应商信息的
所以我在修改的时候首先判定管理员输入的供应商ID是否为空,又因为在sql语句更新过程中,判定条件是主键id,所以在getText(),之后要把管理员输入的id强制转化为int类型。
在测试的时候,我故意让文本域输入的数据为空,因为本来是想要判定文本域为空时弹出窗口提示id不可以为空的,没想到却抛出异常 【 For input string: "" 】
刹时我是一脸懵逼的,不过细细把代码再看了一编,发现在上面 有一段是 String强制转换为Int 的 果然问题是出现在这里了,居然数据为空,又何来强制转换为int
所以以后判定数据是否为空,而且又需要将数据转换时,记得在转换那边先判定一下数据是否为空先