abhijeet namdhari
abhijeet namdhari

Reputation: 65

Update SQL query is not working in Java Swing

Here i made table called sub_master with column sub_id and name, insertion and deletion working perfectly fine with this, so put those functions here as well to get reference for update function and i'm using PostgreSQL for this. In command line UPDATE query is working fine and query as: UPDATE school_submaster SET name ='' WHERE sub_id = ;

private void InsertRowActionPerformed(java.awt.event.ActionEvent evt) 
{                                          
  String query = "INSERT INTO school_submaster (sub_id, \"name\") VALUES ("+SidInput.getText()+",'"+SnameInput.getText()+"')";
  executeSQlQuery(query, "Inserted");
}                                         

private void UpdateRowActionPerformed(java.awt.event.ActionEvent evt)    
{                                          
  String query = "UPDATE school_submaster SET 'name' ='"+SnameInput.getText()+"'+WHERE sub_id = "+SidInput.getText();
  executeSQlQuery(query, "Updated");
}                                         

private void DeleteRowActionPerformed(java.awt.event.ActionEvent evt) 
{                                          
    String query = "DELETE FROM school_submaster WHERE sub_id = "+SidInput.getText();
    executeSQlQuery(query, "Deleted");
}                                         

Upvotes: 0

Views: 299

Answers (2)

Gordon Linoff
Gordon Linoff

Reputation: 1269953

Only use single quotes for string and date constants. Never use single quotes around column names or table names.

Your update is:

UPDATE school_submaster
    SET 'name' ='<something>'+WHERE sub_id = "+SidInput.getText();

This has the additional issue of a + in the query string. It should look ore like:

UPDATE school_submaster
    SET name = '<something>'
    WHERE sub_id = "+SidInput.getText();

But even that is not true. You need to learn to use parameters to pass parameters into queries. The query should be some variant of:

UPDATE school_submaster
    SET name = ?
    WHERE sub_id = ?

Where the ? is a placeholder for a parameter (it might also be @name or something else).

Upvotes: 2

Vasu
Vasu

Reputation: 22422

You are missing a space in the sql WHERE clause, so add it as shown below:

String query = "UPDATE school_submaster SET 'name' ='"+
                 SnameInput.getText()+"'  WHERE sub_id = "+SidInput.getText();

Upvotes: 0

Related Questions