Как вставить дату в mysql с помощью java
- Сэр !
я написал модуль под названием Регистрация.java для хранения даты в mysql с помощью java
Но когда я выполняю этот модуль дает исключение:
java.sql.SQLException: Column count doesn't match value count at row 1
но он также показывает сообщение о том, что "данные были успешно вставлены
Обновление: код из комментариев (AndyLanng)
String name = txtName.getText(); String Address = txtAddress.getText(); String contact_no = txtContact.getText(); mail_id = txtEmail.getText(); String username = txtUsername.getText(); String passcode = pf_password.getText().toLowerCase(); String months = (String)cmbPackage.getSelectedItem(); String key = txtkey.getText(); //String start_date = txtStart.getText(dateformat); try{ Class.forName(JDBC_Driver); Connection con = DriverManager.getConnection(DB_URL, USER, password); String sql="insert into registration (name, address, contact, email, username, Password, Package_Duration, Voucher_keys, EndDate)values(?, ?, ?, ?, ?, ?, ?, ?)"; PreparedStatement ps = con.prepareStatement(sql); ps.setString(1, name); ps.setString(2, Address); ps.setString(3, contact_no); ps.setString(4, mail_id); ps.setString(5, username); ps.setString(6, passcode); ps.setString(7, months); ps.setString(8, key); // ps.setDate(1, (Date) dt); // int i= ps.executeUpdate(); // if(i==1) // { JOptionPane.showMessageDialog(this, "Data has been inserted Successfully" ); // // } if(cmbPackage.getSelectedIndex()==0) { Calendar calender = Calendar.getInstance(); calender.add(calender.DATE, +90); java.sql.Date d1 = new java.sql.Date(calender.getTime().getTime()); // String sql1 = "insert into registration(EndDate)values(?)"; ps.setDate(8, d1); ps.executeUpdate(); } else if(cmbPackage.getSelectedIndex()==1) { Calendar calender = Calendar.getInstance(); calender.add(calender.DATE, +180); java.sql.Date dl = new java.sql.Date(calender.getTime().getTime()); // String sql1 = "insert into registration(EndDate) values(?)"; ps.setDate(8, dl); ps.executeUpdate(); } else if(cmbPackage.getSelectedIndex()==2) { Calendar calender = Calendar.getInstance(); calender.add(calender.DATE, +365); // String sql1 = "insert into registration(EndDate) values(?)"; java.sql.Date dl = new java.sql.Date(calender.getTime().getTime()); ps.setDate(8, dl); ps.executeUpdate(); } }catch (SQLException|ClassNotFoundException e){ e.printStackTrace(); } }
Что я уже пробовал:
я пробовал заявление inteerface но безрезультатно
Richard MacCutchan
Вам нужно показать определение столбца и код, который выполняет вставку. Мы не можем догадаться, что вы закодировали; хотя я подозреваю, что вы показываете свое сообщение об успехе, не проверяя результат.
Andy Lanng
Вопрос обновлен
tusharkaushik
Я выкладываю весь свой код здесь
[код перемещен t вопрос (AndyLanng)]
Andy Lanng
Я вижу, что вы совсем новичок на этом форуме, поэтому, пожалуйста, примите эти заметки любезно
Пожалуйста, не размещайте большое количество кода в комментариях. Он теряет все форматирование и может затопить дискуссию.
Используйте кнопку "улучшить вопрос", которая появляется под вашим исходным вопросом, чтобы добавить детали, такие как блоки кода
Отвечая на чьи-то комментарии, используйте кнопку "ответить" рядом с их именем в комментарии. Таким образом, они получают уведомление о том, что вы ответили и можете ответить.
Спасибо ^_^
Richard MacCutchan
У вас есть 9 имен столбцов в вашем SQL-операторе, но только 8 заполнителей для значений. Вы также, как я и подозревал, показываете сообщение об успехе еще до того, как выполняете SQL.
tusharkaushik
Прости !