tusharkaushik Ответов: 0

Как вставить дату в 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

Прости !

0 Ответов