2017-02-21 58 views
0

我有一个Java项目为学校。我使用sql和JFrame工作,当我尝试从订单中删除(或编辑)记录时,订单的所有记录都被删除而不是一个,所以我有3个表格(客户,订单,汽车)。我猜我的SQL查询有问题。 因此,如果任何人都可以告诉我我的错误,那就太好了。 :)为什么我的sql表中的所有记录都被删除?

这里是我的代码:

class DeleteOrder implements ActionListener{ 

    @Override 
    public void actionPerformed(ActionEvent arg0) { 
     // TODO Auto-generated method stub 

     conn = DBConnector.getConnected(); 

     String selectCustomerId = "select cus_id from customers where lname=? and "; 
      String selectCarId = "select car_id from cars where model=?"; 

      String selectedCustomer = customersCombo.getSelectedItem().toString(); 
      String selectedCar = carsCombo.getSelectedItem().toString(); 

     String sql="delete from Orders where " + selectCustomerId + selectCarId; 

     try { 
      state = conn.prepareStatement(sql); 
      state.setString(1, selectedCustomer); 
      state.setString(2, selectedCar); 
      state.execute(); 
      getAllDataFromOrders(); 
     } catch (SQLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     }finally{ 
      try { 
       conn.close(); 
      } catch (SQLException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 


    } 

}//end Delete ORder 
+1

我希望它看起来像这样:'SQL = “从订单删除其中cus_id =” + selectCustomerId +“AND car_id =”+ selectCarId;' –

回答

1

你只是增加了两个数字,我真的不知道为什么。我认为不是:

String sql="delete from Orders where " + selectCustomerId + selectCarId;

你应该写:

String sql="delete from Orders where cus_id =" + selectCustomerId +" and car_id = "+ selectCarId;

相关问题