2015-11-20 2 views
1
try { 
     //  con = dbConn.mySqlConnection(); 
      con = DatabaseConnection.getRAWConnection(); 
String insertSqlTable = "insert into certification VALUES(?,?,?,?,?,?,CURRENT_TIMESTAMP,?)"; 
      pst = con.prepareStatement(insertSqlTable); 
      pst.setInt(1, td.getEmpId()); 
     pst.setString(2, td.getRname()); 
     pst.setString(3, td.getStream()); 
     pst.setString(4, td.getCertificationType()); 
     pst.setString(5, td.getCertificationName()); 
     pst.setString(6, td.getCertificationDate()); 
     //pst.setTimestamp(7, timestamp); 
     pst.setInt(7, td.getScore()); 

     int count = pst.executeUpdate(); 
     if (count >= 1) { 
      con.commit(); 
      status = true; 
     } else { 
      System.out.println("Error occured while inserting certification details into database"); 
      con.rollback(); 
      status = false; 
     } 

Я получаю следующее исключение:Microsoft SQL ошибка исключение

com.microsoft.sqlserver.jdbc.SQLServerException: Операнд типа столкновение: INT несовместим с Datetime2

+0

может быть 7-м столбцом в вашей таблице не является меткой времени, покажите нам структуру таблицы – SpringLearner

ответ

2

Вместо это

pst.setInt(7, td.getScore()); 

pst.setInt(8, td.getScore()); 

7th аргумент уже есть, как CURRENT_TIMESTAMP .Вы являются insterested установить 8th один.

UPDATE

попробовать это

try { 
     // con = dbConn.mySqlConnection(); 
      con = DatabaseConnection.getRAWConnection(); 
String insertSqlTable = "insert into certification VALUES(?,?,?,?,?,?,?,?)"; 
     pst = con.prepareStatement(insertSqlTable); 
     pst.setInt(1, td.getEmpId()); 
     pst.setString(2, td.getRname()); 
     pst.setString(3, td.getStream()); 
     pst.setString(4, td.getCertificationType()); 
     pst.setString(5, td.getCertificationName()); 
     pst.setString(6, td.getCertificationDate()); 
     java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime()); 
     pst.setTimestamp(7, date); 
     pst.setInt(8, td.getScore()); 

     int count = pst.executeUpdate(); 
     if (count >= 1) { 
      con.commit(); 
      status = true; 
     } else { 
      System.out.println("Error occured while inserting certification details into database"); 
      con.rollback(); 
      status = false; 
     } 

} 
+0

Но все-таки я получаю сообщение об ошибке. Указывает, что индекс 8 находится за пределами допустимого диапазона –

+0

OP делает правильный путь, ваш ответ будет вызывать ошибку потому что должны быть только 7 параметров – SpringLearner

0

Может быть переменной оценкой имеет тип DateTime Вот почему он дает это исключение, просто попробуйте использовать SetTime() класса Каландрового вместо SetInt().

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