-1

这是我编辑的代码...

         java.sql.Timestamp sqlNow = new java.sql.Timestamp(new java.util.Date().getTime());

                stmt = con.createStatement();
    //stmt.executeUpdate("INSERT INTO cregn values('"+appno+"','"+usname+"','"+upwd +"','"+fname+"','"+mname+"','"+lname+"','"+dob+"','"+gend+"','"+faname+"','"+saddr+"','"+caddr+"','"+staddr +"','"+pin+"','"+cno+"','"+email+"','"+occ+"','"+secques+"','"+answer+"','Processing','"+sqlNow+"')");
                pst = con.prepareStatement("INSERT INTO cregn (aplno, username, pwd, firstname,middlename,lastname, dob,gender, fathername, street,city,state, pincode, phone, email,occupation,secques,answer,dor)  VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");

                pst.setInt(1, appno);
                pst.setString(2, usname);
                pst.setString(3, upwd);
                pst.setString(4, fname);
                pst.setString(5, mname);
                pst.setString(6, lname);
                pst.setString(7, dob);
                pst.setString(8, gend);
                pst.setString(9, faname);
                pst.setString(10, saddr);
                pst.setString(11, caddr);
                pst.setString(12, staddr);
                pst.setString(13, pin);
                pst.setString(14, cno);
                pst.setString(15, email);
                pst.setString(16, occ);
                // pst.setString(17,ph);
                pst.setString(17, secques);
                pst.setString(18, answer);

                pst.setTimestamp(19, sqlNow);

                pst.executeUpdate();

                out.println("Registration Successful for application " + appno);
            } catch (Exception ee) {
                out.println("Invalid Data! All fields are mandatory..." + ee.getMessage());
            }


%>

执行此代码错误后显示“无效数据!所有字段都是强制性的..数据截断”

4

4 回答 4

3

您没有执行该语句。

您需要调用 executeUpdate

于 2013-03-25T08:50:15.720 回答
2

你必须打电话executeexecuteUpdate打开pst才能真正完成这项工作。例如,最后:

pst.executeUpdate();

您显示的代码所做的只是准备执行语句,它不会执行它。PreparedStatement这是和之间的主要区别之一Statement。在Statement中,您将 SQL 传递给直接执行executeUpdate(如使用 注释掉的行中所见stmt)。使用 a PreparedStatement,您可以按照您的方式提供 SQL ?,设置这些参数,然后调用executeUpdate(或execute),您还没有这样做。

于 2013-03-25T08:48:52.273 回答
0

没有executeUpdate()被召唤pst

于 2013-03-25T08:48:57.167 回答
0

用于pst.executeUpdate();执行查询并确保setAutoCommit(true)必须调用事务中的使用。

于 2013-03-25T09:00:47.110 回答