# Update Prepared Statement Fehler bei Argumenten



## nieselfriem (4. Aug 2011)

Hallo!

Ich habe eine Methode um eine Update. Dieser Methode wird ein Objekt vom Typ Vermittlungsverscuh übergeben. Mit getter-Methoden ist der Zugriff auf die Daten möglich. Es sind 6 Attribute an der Zahl
jedoch kommt es immer zur Fehlermeldung:

```
java.sql.SQLException: No value specified for parameter 7
```
Ich versuche doch nur 6 Argumente zu übergeben. 

```
public void update(VermittlungsVersuch vVers) throws SQLException, ClassNotFoundException {
        conn = AllowConnect.driver(this.user, this.password, this.dburl, this.className);
        if (conn != null) {
          
            PreparedStatement stmt = conn.prepareStatement("UPDATE `Vermittlungsversuche` SET ("
                    + "`Datum` = ?, `AG-ID` = ?, `AN-ID` = ?, `VV-Bemerkung` = ?, `Anspr-ID`= ?) "
                    + "VALUES (?,?,?,?,?) WHERE `VV-ID`= ?");
            stmt.setObject(1, vVers.getDatum());
            stmt.setInt(2, vVers.getArbeitgId());
            stmt.setInt(3, vVers.getArbeitnId());
            stmt.setString(4, vVers.getBemerkung());
            stmt.setInt(5, vVers.getAnsprechId());
            stmt.setInt(6, vVers.getVvId());

            stmt.executeUpdate();
            conn.close();
        }//if
```

Wo liegt der Fehler?

Gruß niesel


----------



## SlaterB (4. Aug 2011)

jedes Fragezeichen ist ein Parameter und du hast offensichtlich noch nie ein PreparedStatement in dieser Form benutzt?
fange doch einfach mit EINEM Parameter an..

in Zeile 6 kannst du dir alle '= ?' sparen


----------



## turtle (4. Aug 2011)

Also ich zähle weitaus mehr als 6 ?-Parameter.

Wahrscheinlich meintest Du

UPDATE Vermittlungsversuche SET Datum=?,AG-ID=?,AN-ID=?,VV-Bemerkung=?,Anspr-I=? WHERE VV-ID= ?


----------



## nieselfriem (4. Aug 2011)

Naja "VALUES" gehört natürich nicht zu einem update-Query bei SQL. Das war der fehler, bis hier hin


----------

