0
String sql = "INSERT INTO user (userid, username, password, lastname, firstname, "
            + "middlename, birthdate, gender, address, email, contact, "
            + "marital_status, religion) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)";
    try {
        pst = conn.prepareStatement(sql);

        pst.setString(1, username);
        pst.setString(2, password.toString()); //chartype
        pst.setString(3, lastName);
        pst.setString(4, firstName);
        pst.setString(5, middleName);
        pst.setString(6, birthdate);
        pst.setString(7, gender1);
        pst.setString(8, address1);
        pst.setString(9, email1);
        pst.setLong(10, mobile);
        pst.setString(11, status1);
        pst.setString(12, religion1);
        pst.execute();
    }catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }

我有 13 列,用户 ID 是自动递增的。但我不知道你不需要输入用户ID是怎么做的。

我得到了这个错误。我想要自动增量 ID。所以不需要输入对吗?

Column count doesn't match value count at row 1
4

4 回答 4

1

如果您不打算为其提供值,请从列列表中删除“userid”。

IEINSERT INTO user (username, password, ...)

于 2013-08-31T11:06:29.767 回答
1

您在 中指定 13 列,但在子句INSERT中只有 12 个占位符。VALUES列数和值必须匹配。您需要从 中删除该useridINSERT,或者您需要添加一个额外的占位符(或文字值)来设置其值。

于 2013-08-31T11:14:26.487 回答
0

您不能将值插入 AutoInc 列,因此只需将其从查询中删除:

insert into user(userName, password,...) values (and your values here)
于 2013-08-31T11:07:25.583 回答
0

你的数据库是 MySQL 吗?如果是,您可以参考这篇关于将值插入自动递增列的帖子。 如何将数据插入具有自动递增主键的 MySQL?

于 2013-08-31T11:13:53.730 回答