2017-10-01 1 views
0

Kann mir bitte jemand sagen, was mit meiner Frage falsch ist. Ich habe Textfeld, um den Insassenname zu aktualisieren, aber es funktioniert nicht, nur Status funktioniert.Java mysql - Wie aktualisiere Datenbank von Textbox

String gOccupied = "Occupied" ; 
String query = "UPDATE `rooms` SET `occupantname` = '"+txtFirstNames.getText()+"' , `status`='"+gOccupied+"' WHERE roomnumber = " +CBRoomNumber.getSelectedItem(); 

executeSQlquery(query,""+" Updated"); 
+0

erhalten Sie einen Fehler? Wenn es dann ist, aktualisieren Sie bitte oben. –

+0

Ich habe keinen Fehler. Es ist nur nur Status wird aktualisiert, aber Insassenname nicht aktualisiert – Francis

+0

Hmm, dann bezweifle ich, dass der Wert von "txtFirstNames.getText()" nicht geändert wird, bitte debuggen Sie, können Sie finden, warum es passiert ist. –

Antwort

0

Kann mir bitte jemand sagen, was zu meiner Anfrage falsch ist. Ich habe Textfeld , um den Insassennamen zu aktualisieren, aber es funktioniert nicht, nur Status funktioniert.

Verwenden Sie direkte MySql SQL nicht mit diesen Sonderzeichen `

String query =„UPDATE rooms SET occupantname = ' "+ txtFirstNames.getText() +"', status = '"+ gOccupied +"' WO roomnumber = "+ CBRoomNumber.getSelectedItem(); Blockquote

instated Verwendung unter SQL

String query = "?? UPDATE Zimmer SET occupantname =, status = WHERE Zimmernummer =";

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.SQLException; 

public class Main { 

    private static PreparedStatement preparedStmt = null; 
    private static Connection connection = null; 

    public static void main(String[] args) { 
     String gOccupied = "Occupied"; 
     String occupantname = txtFirstNames.getText(); 
     String query = "UPDATE rooms SET occupantname = ? , status= ? WHERE roomnumber = ?"; 
     try { 
      executeSQlquery(query, occupantname, gOccupied, "Updated"); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    private static void executeSQlquery(String query, String occupantname, String gOccupied, String status) throws SQLException { 
     try { 
      // create a java mysql database connection 
      String myDriver = "org.mysql.Driver"; 
      String myUrl = "jdbc:mysql://localhost/test"; 
      Class.forName(myDriver); 
      connection = DriverManager.getConnection(myUrl, "username", "password"); 
      preparedStmt = connection.prepareStatement(query); 
      preparedStmt.setString(1, occupantname); 
      preparedStmt.setString(2, gOccupied); 
      preparedStmt.setInt(3, 101); 

      // execute the java preparedstatement 
      preparedStmt.executeUpdate(); 
     } catch (ClassNotFoundException e) { 
      e.printStackTrace(); 
     } finally { 
      //finally block used to close resources 
      if (preparedStmt != null) { 
       connection.close(); 
      } 
      if (connection != null) { 
       connection.close(); 
      } 
     } 
    } 

} 

Im Allgemeinen ist es eine schreckliche Idee, die Sie derzeit tun SQL-Abfragen, die Art und Weise zu konstruieren, da es die Tür für alle Arten von SQL-Injection-Angriffe öffnet. Um dies richtig zu machen, müssen Sie stattdessen vorbereitete Anweisungen verwenden. Dies wird auch alle Arten von Fluchtproblemen lösen, die Sie augenblicklich haben.

SQL select statement with where clause

Verwandte Themen