将jtextbox值和jradiobutton值插入数据库

时间:2017-03-30 02:51:11

标签: java sql-server jdbc

我正在尝试将文本框中的值插入数据库,但收到错误Name: a, Username:a ,Contact:a , radio button [male]。我认为问题是单选按钮,但当我试图在数据库中插入值从查询中删除单选按钮和性别时,我得到相同的错误。

我尝试插入值create table temp ( id int IDENTITY(1,1) PRIMARY KEY, name varchar(32) not null, username varchar(32) not null, contact varchar(32) not null, gender int ); btnSubmit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { try { int gender = 0; Connection sqlCon = DB_con.getSQLConnection(); PreparedStatement ps = sqlCon.prepareStatement( "insert into temp (name, username, contact, gender) values ( ?, ?, ?, ?)" ); ps.setString(1, txtName.toString()); ps.setString(2, txtUserName.toString()); ps.setString(3, txtContact.toString()); gender = (rbtnMale.isSelected()) ? 1 :2; System.out.println("value of gender " + gender ); ps.setInt(4, gender); int i = ps.executeUpdate(); System.out.println("records inserted: "+i); sqlCon.close(); } catch(Exception e) { System.out.println(e.toString()); } } }); ,但仍然遇到相同的错误。 我无法弄清楚我是如何得到这个错误的。

re:replace(Content, "[\r\n]", " ", [global, {return, list}])

2 个答案:

答案 0 :(得分:2)

可能是其中之一:

  • txtName.toString()
  • txtUserName.toString()
  • txtContact.toString()

...超过32个字符。为什么不在插入之前将它们记录在某处,以便看到?

目前尚不清楚这些对象来自您的代码段。它们是否可能是JTextField的默认toString()方法实现?如果是,请使用getText(), not toString()

答案 1 :(得分:1)

更改

ps.setString(1, txtName.toString());
ps.setString(2, txtUserName.toString());
ps.setString(3, txtContact.toString());

ps.setString(1, txtName.getText());
ps.setString(2, txtUserName.getText());
ps.setString(3, txtContact.getText());

toString正在对控件执行调试转储,它肯定比32个字符长,并且不代表键入字段的文本(或者至少不是您想要的格式;) )