Как написать SQL-запрос при удалении выбранной строки jtable? - PullRequest
1 голос
/ 19 марта 2012

У меня есть jtable на моем графическом интерфейсе. (TableRealProperty). Мне нужно добавить, удалить и обновить данные внутри таблицы. и эти данные взяты из базы данных, в которой имеется первичный ключ с именем ClientID. столбцы внутри jtable являются "Location" и "Area". Если я выберу определенную строку из jtable, она должна быть удалена так же, как и из базы данных, конечно. Моя проблема в том, что, когда я нажимаю кнопку «Удалить», удаляется не только выбранная строка, но и все данные в таблице этого определенного клиента.

вот мой код для удаления:

  private void cmdDelRPropActionPerformed(java.awt.event.ActionEvent evt) {                                            
String sql = "delete FROM tblrealProperty where tblrealproperty.ClientID = ?";

    try {
    pst = conn.prepareStatement(sql);
    pst.setString(1,  txtClientID.getText());
    ((DefaultTableModel)tableRealProperty.getModel()).removeRow(tableRealProperty.getSelectedRow());
    pst.execute();
    JOptionPane.showMessageDialog(null, "Deleted");


   } catch (Exception e) {
      e.printStackTrace();
      JOptionPane.showMessageDialog(null, e);
     }

}

Ответы [ 3 ]

1 голос
/ 19 марта 2012

Этот запрос обязательно удалит все строки с определенным ClientID.Вы должны добавить еще один столбец к таблице в базе данных, скажем, «индекс», который будет уникальным для каждой строки в таблице.затем удалите строку с этим индексом:

 `delete FROM tblrealProperty where tblrealproperty.index = ?`
1 голос
/ 19 марта 2012

Если я выберу определенную строку из jtable, она должна быть удалена, как и из базы данных, конечно.Моя проблема в том, что, когда я нажимаю кнопку «Удалить», удаляется не только выбранная строка, но и все данные в таблице этого определенного клиента.

Похоже, у вас есть внешний ключЧтобы tblrealproperty установить на клиентскую таблицу с каскадным удалением.Это означает, что если клиент удаляется из tblrealproperty, все соответствующие данные с внешним ключом, указывающим на удаленную строку в tblrealproperty, также удаляются.Это функция внутри БД для предотвращения несоответствий.

0 голосов
/ 06 августа 2012

Для меня отлично работает, не забудьте проверить, является ли txtClientID значением index с autoincrement в вашей базе данных.Если ваша таблица имеет аналогичный txtClientID, ваша команда удаления выполнит удаление всех строк с одинаковым txtClientID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...