2013-08-31 6 views
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 столбцов, а userid - автоинкремент. Но я не знаю, как вам не нужно вводить идентификатор пользователя.Как вставить значения в базу данных в java

И я получил эту ошибку. И я хочу Auto Increment ID. Так что нет нужды вводить правильно?

Column count doesn't match value count at row 1 
+0

вы можете удалить это поле, так как оно является столбцом auto_increment или просто передает значение «NULL». например, 'VALUES (NULL,?,?, .....' –

+0

Отправлять 'NULL' или удалять столбец' userid'. Я также предлагаю вам использовать ['INSERT INTO ... SET'] (http: //milov.nl/2836), чтобы улучшить удобочитаемость. –

+0

Избегайте user_id в команде вставки или просто передайте 'null'. –

ответ

0

Вы не можете вставить значения в столбце AutoInc, поэтому просто удалите его из запроса:

insert into user(userName, password,...) values (and your values here) 
+0

, поэтому я собираюсь сделать первичный ключ именем пользователя? – JeraldPunx

+0

@JeraldPunx nope, ваш 'userid' будет автоматически увеличиваться на БД, как вы указали. –

+0

Вы знаете, как для ввода char [] для моего пароля? Причина, когда я использую 'password.toString()' пароль на моем localhost/phpadmin отличается ... – JeraldPunx

1

Удалите «userid» из списка столбцов, если вы не намерены предоставлять ему значение.

I.e. INSERT INTO user (username, password, ...)

1

Вы задаете 13 столбцов в INSERT, но только 12 заполнители в предложении VALUES. Количество столбцов и значений должно совпадать. Либо вам нужно удалить столбец userid из вашего INSERT, либо вам нужно добавить дополнительный заполнитель (или буквальное значение), чтобы установить его значение.

Смежные вопросы