2016-11-02 3 views
0

Ich möchte meine Daten aktualisieren und löschen Sie es und ersetzen Sie es in einer anderen Tabelle für ein einziges Mal. Ich weiß nicht, wie ich das machen soll.Java-SQL-Aktualisierungsabfrage Syntaxfehler

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das der Syntax Ihrer MySQL-Serverversion entspricht, in der Nähe von '(Cash, Change) -Werten (' 9000 ',' Ihre Änderung ist: 40.0 '), wobei Room =' 9 'und Name' in Zeile 1

try{ 
    chge=jTextField27.getText(); 
    cash=jTextField4.getText(); 

    String SQLL = "update customer (Cash,Chnge) values ('" + cash + "','" + chge + "') where Room = ? and Name = ?;";  
    Dbase5 = conn.prepareStatement (SQLL); 
    Dbase5.setString(1,jTextField1.getText()); 
    Dbase5.setString(2,jTextField2.getText()); 
    int b = Dbase5.executeUpdate(); 

    ////////MOVE TO HISTORY 
    String SQL = "INSERT INTO history select * from customer where Room = ? and Name = ?";  
     Dbase = conn.prepareStatement (SQL); 
     Dbase.setString(1,jTextField1.getText()); 
     Dbase.setString(2,jTextField2.getText()); 
     int rs=Dbase.executeUpdate(); 

     ///////MOVE TO HISTORY 
    String MSQL = "delete from customer where Room=? and Name=?"; 
     Dbase1 = conn.prepareStatement (MSQL); 
     Dbase1.setString(1,jTextField1.getText()); 
     Dbase1.setString(2,jTextField2.getText()); 
     boolean s = Dbase1.execute(); 
     this.dispose(); 
+0

Bearbeiten Sie Ihre Frage und die vollständigen Fehler posten. –

+0

@ROMANIA Ich bearbeite bereits, hilf mir –

+0

Ist das UPDATE-Anweisung wirklich gültig? Sollte es nicht so etwas wie 'Kunde aktualisieren gesetzt Cash = '123', Chnge = 'foo' wo Zimmer = '42' und Name = 'John'? – Steve

Antwort

0

Alle oben genannten Abfragen sind rechts mit Ausnahme der Update-Abfrage:

update customer set Cash = '" + cash + "', Chnge = '" + chge + "' where Room = ? and Name = ?; 

oder Sie können sogar einen der ersten beiden Argumente gesetzt:

update customer (Cash,Chnge) values ('" + cash + "','" + chge + "') where Room = ? and Name = ?; 

Es ist wie unten sein sollte s gut mit preparedStatement:

update customer set Cash = ?, Chnge = ? where Room = ? and Name = ?; 

ich Sie über untenstehenden Link gehen würde empfehlen: http://dev.mysql.com/doc/refman/5.7/en/update.html