Java 将jtextbox值和jradiobutton值插入数据库
我试图将文本框中的值插入数据库,但出现错误Java 将jtextbox值和jradiobutton值插入数据库,java,sql-server,jdbc,Java,Sql Server,Jdbc,我试图将文本框中的值插入数据库,但出现错误com.microsoft.sqlserver.jdbc.SQLServerException:字符串或二进制数据将被截断。我原以为问题出在单选按钮上,但当我试图在数据库中插入值并从查询中删除单选按钮和性别时,我得到了相同的错误 我尝试插入值Name:a、Username:a、Contact:a、单选按钮[male],但仍然收到相同的错误。 我无法找出我是如何得到这个错误的 create table temp ( id int IDENTITY(1,
com.microsoft.sqlserver.jdbc.SQLServerException:字符串或二进制数据将被截断
。我原以为问题出在单选按钮上,但当我试图在数据库中插入值并从查询中删除单选按钮和性别时,我得到了相同的错误
我尝试插入值Name:a、Username:a、Contact:a、单选按钮[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());
}
}
});
很可能其中一个:
- txtName.toString()
- txtUserName.toString()文件
- txtContact.toString()
不清楚这些对象是来自代码片段的什么类。它们是否可能是JTextField的默认toString()方法实现?如果是这样,请使用。可能是以下其中一种:
- txtName.toString()
- txtUserName.toString()文件
- txtContact.toString()
ps.setString(1, txtName.toString());
ps.setString(2, txtUserName.toString());
ps.setString(3, txtContact.toString());
到
toString
正在对控件进行调试转储,其长度肯定超过了32个
字符,并且不表示输入到字段中的文本(或者至少不是您想要的格式;)更改
ps.setString(1, txtName.toString());
ps.setString(2, txtUserName.toString());
ps.setString(3, txtContact.toString());
到
toString
正在对控件进行调试转储,其长度肯定超过了32个
字符,并且不表示输入到字段中的文本(或者至少不是您想要的格式;)听起来您的一个或多个值超过了32个characters@MadProgrammer我已经编辑了我的帖子。请查看。听起来您的一个或多个值超过了32characters@MadProgrammer我已经编辑了我的帖子。请看,非常感谢。正如您所说,我将toString()更改为getText()。它解决了我的问题。非常感谢。正如您所说,我将toString()更改为getText()。它解决了我的问题。