Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 转换nvarchar值';时转换失败';到数据类型int_Java_Sql_Sql Server_Eclipse_Javafx - Fatal编程技术网

Java 转换nvarchar值';时转换失败';到数据类型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

我试图在JavaFx中为我的表创建更新语句,收到以下错误:

将nvarchar值“Ana”转换为数据时,转换失败 输入int

我在SQL Server中创建了表。在我的数据库中,只有年龄是从int类型开始的,其他所有内容都是字符串

这是我的密码:

    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
的参数是查询中的第二个参数,我假设这是一个非常安全的猜测。