抛出异常 For input string: ""

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  

所以以后判定数据是否为空,而且又需要将数据转换时,记得在转换那边先判定一下数据是否为空先
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值