我正在尝试将文本框中的值插入数据库,但收到错误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}])
答案 0 :(得分:2)
可能是其中之一:
...超过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
个字符长,并且不代表键入字段的文本(或者至少不是您想要的格式;) )