Java 转换nvarchar值';时转换失败';到数据类型int
我试图在JavaFx中为我的表创建更新语句,收到以下错误: 将nvarchar值“Ana”转换为数据时,转换失败 输入int 我在SQL Server中创建了表。在我的数据库中,只有年龄是从int类型开始的,其他所有内容都是字符串 这是我的密码:Java 转换nvarchar值';时转换失败';到数据类型int,java,sql,sql-server,eclipse,javafx,Java,Sql,Sql Server,Eclipse,Javafx,我试图在JavaFx中为我的表创建更新语句,收到以下错误: 将nvarchar值“Ana”转换为数据时,转换失败 输入int 我在SQL Server中创建了表。在我的数据库中,只有年龄是从int类型开始的,其他所有内容都是字符串 这是我的密码: public void handleUpdateAction(ActionEvent event) { String sql = "update users set name =?, age = ?, department=?, job
public void handleUpdateAction(ActionEvent event) {
String sql = "update users set name =?, age = ?, department=?, job=?, contact = ? where userNo =?" ;
try {
String userNo = txt_userNo.getText();
String name = txt_name.getText();
double age = Double.valueOf(txt_age.getText());
String department = txt_department.getText();
String job = txt_job.getText();
String contact = txt_contact.getText();
p_stmt = con.prepareStatement(sql);
p_stmt.setString(1, userNo);
p_stmt.setString(2, name);
p_stmt.setDouble(3, age);
p_stmt.setString(4, department);
p_stmt.setString(5, job);
p_stmt.setString(6, contact);
int i = p_stmt.executeUpdate();
if (i == 1) {
}System.out.println("Data Updated Successfully");
loadDataFromDatabase();
}catch (Exception e) {
e.printStackTrace();
}
}
语句的
参数索引。setString
指示查询中参数标记?
的词法顺序。因此,userNo
应该在末尾。例如:
public void handleUpdateAction(ActionEvent event) {
String sql = "update users set name =?, age = ?, department=?, job=?, contact = ? where userNo =?" ;
try {
String userNo = txt_userNo.getText();
String name = txt_name.getText();
double age = Double.valueOf(txt_age.getText());
String department = txt_department.getText();
String job = txt_job.getText();
String contact = txt_contact.getText();
p_stmt = con.prepareStatement(sql);
p_stmt.setString(1, name);
p_stmt.setDouble(2, age);
p_stmt.setString(3, department);
p_stmt.setString(4, job);
p_stmt.setString(5, contact);
p_stmt.setString(6, userNo);
int i = p_stmt.executeUpdate();
if (i == 1) {
}System.out.println("Data Updated Successfully");
loadDataFromDatabase();
}catch (Exception e) {
e.printStackTrace();
throw e;
}
}
语句的参数索引。setString
指示查询中参数标记?
的词法顺序。因此,userNo
应该在末尾。例如:
public void handleUpdateAction(ActionEvent event) {
String sql = "update users set name =?, age = ?, department=?, job=?, contact = ? where userNo =?" ;
try {
String userNo = txt_userNo.getText();
String name = txt_name.getText();
double age = Double.valueOf(txt_age.getText());
String department = txt_department.getText();
String job = txt_job.getText();
String contact = txt_contact.getText();
p_stmt = con.prepareStatement(sql);
p_stmt.setString(1, name);
p_stmt.setDouble(2, age);
p_stmt.setString(3, department);
p_stmt.setString(4, job);
p_stmt.setString(5, contact);
p_stmt.setString(6, userNo);
int i = p_stmt.executeUpdate();
if (i == 1) {
}System.out.println("Data Updated Successfully");
loadDataFromDatabase();
}catch (Exception e) {
e.printStackTrace();
throw e;
}
}
只是猜测一下,但参数的顺序是否应该与查询中的顺序不同?首先添加参数userNo
,但它是查询中的最后一个参数。考虑到'Ana'
也是一个名称,这是您添加的第二个参数,Age
的参数是查询中的第二个参数,我假设这是一个非常安全的猜测。只是一个猜测,但参数的顺序是否应该与查询中的顺序不同?首先添加参数userNo
,但它是查询中的最后一个参数。考虑到'Ana'
也是一个名称,这是您添加的第二个参数,Age
的参数是查询中的第二个参数,我假设这是一个非常安全的猜测。