Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/48: Рейтинг темы: голосов - 48, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 32

Удаление строк из таблицы

18.06.2014, 15:57. Показов 9496. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Помогите с удалением поля из таблицы по заданому индексу.
Пользователь вводит в текстовое поле индекс "ID", а в таблице staff базы данных удаляется строка, поле ID которой равное введенному. Удаление производится в методе deleteRecordByIdentInStaffTable.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                  
        //При нажатии но эту кнопку вызывается метод deleteRecordByIdentInStaffTable
                    String a = jTextField2.getText();
                    deleteRecordByIdentInStaffTable(a);
    }                               
 
public static void deleteRecordByIdentInStaffTable(String a){
        try{
                    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                }
                catch (ClassNotFoundException e){
                    System.err.println("Драйвер JDBC/ODBC не найден.");
                }
                String url = "jdbc:odbc:office";
                try {
                    Connection con = DriverManager.getConnection(url);
                    Statement st = con.createStatement();
                    ResultSet queryResults = st.executeQuery("SELECT * FROM staff");
                    st.executeUpdate("DELETE * FROM staff WHERE ID = "+a);
                } catch (SQLException ex) {
                    Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
                }
    }
Проблемма в чем: строка удаляется, но в консоли выбрасывается какое-то исключение. Что не так?
Миниатюры
Удаление строк из таблицы  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.06.2014, 15:57
Ответы с готовыми решениями:

Удаление строк из таблицы
Добрый день! Есть проблема: - необходимо из таблицы удалить строки дата в которых отстоит от текущей на 1 год (365 дней) - это...

Удаление строк из таблицы
Добрый день, помогите реализовать следующую программу. Имеется файл .mdb лежащий на сетевом диске в нем есть несколько таблиц: A -...

Удаление строк из таблицы
имеется база. мне необходимо чтобы при заполнении формы журнал замечаний при выборе номера блока в графе поставлен чтобы этот блок...

6
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 32
18.06.2014, 16:35  [ТС]
Прошу прощения, пока все работает

Добавлено через 5 минут
Проблема вот в чем: исключение возникает, когда после удаления строки я хочу выевсти содержимое таблицы на экран. Вот:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public static void deleteRecordByIdentInStaffTable(String a){
        try{
                    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                }
                catch (ClassNotFoundException e){
                    System.err.println("Драйвер JDBC/ODBC не найден.");
                }
                String url = "jdbc:odbc:office";
                try {
                    Connection con = DriverManager.getConnection(url);
                    Statement st = con.createStatement();
                    ResultSet queryResults = st.executeQuery("SELECT * FROM staff");
                    
                    st.executeUpdate("DELETE * FROM staff WHERE ID = "+a);
                    ////Вот**************************************
                    while (queryResults.next()) 
                    {
                        // Напечатать значения в текущей строке.
                        int ID = queryResults.getInt("ID");
                        String FIO = queryResults.getString("FIO");
                        System.out.println(ID+" "+FIO+"\n");
                    }
                    ////*****************************************
                } catch (SQLException ex) {
                    Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
                }
    }
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
18.06.2014, 20:08
Думаю на каждый запрос надо создавать отдельный Statement
0
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 32
18.06.2014, 20:24  [ТС]
KEKCoGEN, дело в том что когда я размещаю цикл для вывода на экран перед строкой удаления
Java
1
st.executeUpdate("DELETE * FROM staff WHERE ID = "+a);
- все нормально. А если после- выбрасывает исключение.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
18.06.2014, 20:52
вы пробовали создать отдельный Statement? Покажите код
0
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 32
18.06.2014, 22:10  [ТС]
Попробовал так.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        //При нажатии но эту кнопку вызывается метод deleteRecordByIdentInStaffTable
                    String a = jTextField2.getText();
                    deleteRecordByIdentInStaffTable(a);
                    try{
                    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                }
                catch (ClassNotFoundException e){
                    System.err.println("Драйвер JDBC/ODBC не найден.");
                }
                String url = "jdbc:odbc:office";
                try {
                    Connection con = DriverManager.getConnection(url);
                    Statement st = con.createStatement();
                    String F = jTextField1.getText();
                    ResultSet queryResults = st.executeQuery("SELECT * FROM staff");
                    
                    while (queryResults.next()) 
                    {
                        // Напечатать значения в текущей строке.
                        int ID = queryResults.getInt("ID");
                        String FIO = queryResults.getString("FIO");
                        System.out.println(ID+" "+FIO+"\n");
                    }
                    
                } catch (SQLException ex) {
                    Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
                }
    }
То есть создал новый Statement и вывод на экран в обработке нажатия кнопки, после вызова функции удаления deleteRecordByIdentInStaffTable. Теперь картина такая:

Странно еще то, что выводит в том числе и удаленное поле, в то время как в после работы функции deleteRecordByIdentInStaffTable строка из таблицы действительно удаляется (проверял).
Миниатюры
Удаление строк из таблицы  
0
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 32
19.06.2014, 18:31  [ТС]
Народ... Извините еще раз.
Что-то я сегодня невнимательный.
Забыл убрать блок вывода на экран в функции deleteRecordByIdentInStaffTable.
В общем, теперь никаких исключений не выбрасывает, но: выводится и та строка, которая была удалена. Хотя после завершения работы программы этой строки в таблице БД нет. Может, после удаления нужно как-то обновить базу данных?

Добавлено через 19 часов 58 минут
Так вот, как сделать так что бы выводились обновленные данные?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.06.2014, 18:31
Помогаю со студенческими работами здесь

Удаление строк из таблицы
Добрый день! подскажите, как можно разрулить следующую ситуацию: есть столбец, в котором находятся номенклатуры товаров (8 цифр), но тут...

Удаление из таблицы чётных строк
В чём ошибка? DELETE FROM `photo` WHERE id IN (SELECT * FROM `photo` WHERE id % 2 = 0); Error Code: 1241. Operand should...

Удаление одинковых строк из таблицы
Здравствуйте! У меня есть таблица "Продукты" и есть таблица "Чеки". При составлении чека я копирую строки из таблицы "Продукты"...

Некорректное удаление строк из таблицы
Добрый день. Перейду сразу к делу. Есть две таблицы: 1) справочник 2) и обрабатываемая При отсутствии ID сотрудника...

Удаление строк из таблицы по условию
Помогите адаптировать код под удаление всех строк содержащих значение меньше 30, в том числе и отрицательных. Как правильно прописать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru