Маркер параметра не разрешен (обновление базы данных 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);

не имеет смысла, потому что

  1. этот запрос не возвращает ResultSet, и
  2. 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);
    }      
Другие вопросы по тегам