由於標題狀態,我試圖編輯和現有(本地)MySQL服務器中的字段。 添加和刪除行用得好好的,但是當我嘗試使用此代碼編輯:試圖更新我的表,而不是1行得到更新所有行得到更改
private void EditActionPerformed(java.awt.event.ActionEvent evt) {
try{
String edit1 = lNaam.getText();
String edit2 = lEmail.getText();
String edit3 = lAdres.getText();
String edit4 = lPlaats.getText();
String edit5 = lPostcode.getText();
String edit6 = lTelefoon.getText();
String edit7 = lBedrijfsNaam.getText();
String sql="update customers set naam='"+edit1+"',email='"+edit2+"',adres='"+edit3+"',plaats='"+edit4+"',postcode='"+edit5+"',telefoon='"+edit6+"',bedrijfsnaam='"+edit7+"'where KL_NR";
preparedStatement=connect.prepareStatement(sql);
preparedStatement.execute();
JOptionPane.showMessageDialog(null, "Updated");
}catch(SQLException | HeadlessException e){
JOptionPane.showMessageDialog(null, e);
}
Update_table();
}
編輯:我忘了說這一點,KL_NR字段是一個AUTO_INCREMENT字段,它應該停留一樣的,我不知道放在那裏
它使編輯在短短1
這種合作代替表中的所有行德來選擇行,刪除等:
private void Table_customerMouseReleased(java.awt.event.MouseEvent evt) {
try{
int row = Table_customer.getSelectedRow();
String TClick = (Table_customer.getModel().getValueAt(row, 0).toString());
String sql="select * from customers where KL_NR='"+TClick+"'";
preparedStatement=connect.prepareStatement(sql);
resultSet=preparedStatement.executeQuery();
if(resultSet.next()){
String add1 =resultSet.getString("naam");
lNaam.setText(add1);
String add2 =resultSet.getString("Email");
lEmail.setText(add2);
String add3 =resultSet.getString("Adres");
lAdres.setText(add3);
String add4 =resultSet.getString("Plaats");
lPlaats.setText(add4);
String add5 =resultSet.getString("Postcode");
lPostcode.setText(add5);
String add6 =resultSet.getString("Telefoon");
lTelefoon.setText(add6);
String add7 =resultSet.getString("Bedrijfsnaam");
lBedrijfsNaam.setText(add7);
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
這是我刪除代碼:
private void DeleteActionPerformed(java.awt.event.ActionEvent evt) {
String sql ="delete from test.customers where NAAM=? ";
try {
// TODO add your handling code here:
preparedStatement = connect.prepareStatement(sql);
preparedStatement.setString(1, lNaam.getText());
preparedStatement.executeUpdate();
JOptionPane.showMessageDialog(null, "Deleted");
} catch (SQLException ex) {
Logger.getLogger(DataView.class.getName()).log(Level.SEVERE, null, ex);
}
Update_table();
}
我希望你能幫助我。 :S
通過什麼標準,你確定要更新哪一行? – SceLus
你的where子句在更新聲明中有瑕疵 – Cris
請閱讀關於SQL注入 –