Маркер параметра не разрешен (обновление базы данных Access)
Statement st = connect.createStatement();
String sql = "update StudentDatabaseS set RollNo = ?, FullName = ?, FatherName = ?, FatherCNIC = ?, DateOfBirth = ?, Class = ?, Address = ?, City = ?, Province = ? where RollNo = '"+Srollno+"'";
ResultSet rs = st.executeQuery(sql);
ps = connect.prepareStatement(sql);
ps.setInt(1, roll_mo);
ps.setString(2, name_mo);
ps.setString(3, Fname_mo);
ps.setString(4, fcnic_mo);
ps.setString(5, dob_mo);
ps.setInt (6, Class_mo);
ps.setString(7, add_mo);
ps.setString(8, city_mo);
ps.setString(9, prvnce_mo);
ps.executeUpdate();
Я пытаюсь обновить запись в базе данных Access, и она постоянно выдает мне исключения, например, маркеры параметров не допускаются.
Может кто-то помочь мне с этим?
2 ответа
Решение
Когда
String sql = "update StudentDatabaseS set RollNo = ?, FullName = ?, FatherName = ?, FatherCNIC = ?, DateOfBirth = ?, Class = ?, Address = ?, City = ?, Province = ? where RollNo = '"+Srollno+"'";
линия
ResultSet rs = st.executeQuery(sql);
не имеет смысла, потому что
- этот запрос не возвращает ResultSet, и
executeQuery
не может знать, какие значения соответствуют заполнителям параметров (?
).
Если вы пропустите эту строку, то ошибка "маркер параметра не разрешен" исчезнет, и вы можете продолжить с UPDATE, используя PreparedStatement.
try{
Statement st = connect.createStatement();
String sql = "update StudentDatabaseS set RollNo = ?, FullName = ?, FatherName = ?, FatherCNIC = ?, DateOfBirth = ?, Class = ?, Address = ?, City = ?, Province = ? where RollNo = '"+Srollno+"'";
try {
ps = connect.prepareStatement(sql);
ps.setInt(1, roll_mo);
ps.setString(2, name_mo);
ps.setString(3, Fname_mo);
ps.setString(4, fcnic_mo);
ps.setString(5, dob_mo);
ps.setInt (6, Class_mo);
ps.setString(7, add_mo);
ps.setString(8, city_mo);
ps.setString(9, prvnce_mo);
ps.executeUpdate();
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, "Record Modified !");
search_input.requestFocus();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
catch(Exception e)
{
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, e);
}