Хобрук: Ваш путь к мастерству в программировании

JOptionPane.showConfirmDialog не работает в netbeans, когда я получаю некоторые данные для отображения в диалоговом окне

Вот код:

       int value = JOptionPane.showConfirmDialog(Delete_Panel, "Delete Record of '"+rs.getString("Name")+"'", "Delete Now", JOptionPane.YES_NO_OPTION);

Он ничего не делает ... но когда я удаляю rs.getString("Name"), он работает отлично, но я также хочу показать это имя из доступа ms в диалоге подтверждения, а затем, в соответствии с опцией «да, нет», я хочу, чтобы мой дальнейший код выполнялся.

Полный исходный код:

       String input = txtDelete.getText();


        Connection connection;

        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            connection = DriverManager.getConnection("jdbc:odbc:NewPData");
            Statement st = connection.createStatement();
            ResultSet rs = st.executeQuery("select ID from Table1 where ID=" + input);

            if (!rs.next()) {
                JOptionPane.showMessageDialog(Delete_Panel, "ID does not exist");
            } else {

             // int value = JOptionPane.showConfirmDialog(Delete_Panel, "Delete Record of '"+rs.getString("Name")+"'", "Delete Now", JOptionPane.YES_NO_OPTION);

                st.executeUpdate("delete from Table1 where ID=" + input);
                JOptionPane.showMessageDialog(Delete_Panel, "Record is Deleted");
                connection.close();

            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
        }
    }
04.12.2012

Ответы:


1

Ваш код должен работать нормально. Пожалуйста, напишите, что было точным выводом в диалоговом окне.

Вы пытались сначала получить данные перед вызовом showConfirmDialog?

rs = Заявление.executeQuery

РЕДАКТИРОВАТЬ:

ResultSet rs = st.executeQuery("select ID from Table1 where ID=" + input);

Будет получен только идентификатор столбца. Попробуй это:

ResultSet rs = st.executeQuery("select ID,Name from Table1 where ID=" + input);

04.12.2012
  • Ваш rs может быть нулевым. Попробуйте сначала выполнить запрос, прежде чем показывать диалоговое окно подтверждения. 04.12.2012
  • да, я думаю, что вы, ребята, правы, получаете нулевое значение, как мне это решить? 04.12.2012
  • эй, попробуйте также вопрос: stackoverflow.com/questions/13699162/ 04.12.2012

  • 2

    Попробуйте поместить код в блок try-catch и посмотреть, возникнет ли исключение. Если да, то вам придется обработать его, чтобы получить текст в пользовательском интерфейсе.

    04.12.2012
  • java.sql.SQLException: столбец не найден 04.12.2012
  • Вот и все, столбец, который вы используете, т.е. Имя не является именем столбца в результате, который вы получаете. Проверьте имя этого столбца, верхний регистр/нижний регистр, и вы сможете выяснить проблему. 04.12.2012
  • Если rs.getString(Name) дает нулевое значение, вам следует использовать временную переменную и действовать соответственно. Например, String temp = rs.getString(Name); if(null==temp){temp = No Name Found;} и используйте этот temp вместо rs.getString(Name) в своем коде. 04.12.2012
  • спасибо, чувак, моя проблема решена, ты видишь правильный ответ :) спасибо, амит 04.12.2012

  • 3

    Думали ли вы о создании временной переменной String и настройке ее на вывод rs.getString("Name"), а затем отображении этой строки внутри JOptionPane?

    04.12.2012

    4

    Да, как было сказано в предыдущем ответе, может быть так, что rs пуст, или rs.next() никогда не вызывался, или в наборе результатов нет столбца «имя», и, следовательно, мы пытаемся объединить нулевое имя. Есть ли какие-либо исключения при этом? Лучше возьмите это значение rs.getString("Name") во временную переменную и посмотрите, действительно ли оно не является нулевым значением. Это единственная проблема, которую я вижу.

    04.12.2012
  • да, я думаю, что вы, ребята, правы, получаете нулевое значение, как мне это решить? 04.12.2012
  • Новые материалы

    Абсолютно имеет смысл.
    Абсолютно имеет смысл. Мой репетитор даже предложил то же самое. Одна проблема, с которой я столкнулся, заключается в том, что для каждой из категорий не было ярлыка «хорошо». Если я перебираю..

    МАШИННОЕ ОБУЧЕНИЕ И EDA
    Каковы шаги в машинном обучении Определение проблемы Генерация гипотез Извлечение данных Исследование данных Прогнозное моделирование Развертывание модели Зачем нам ЭДА? Идентификация..

    В чем основные различия между ReactJS и React-Native?
    В чем основные различия между ReactJS и React-Native? Что я узнал, создавая веб-приложения, а затем мобильные приложения на React React-Native существует уже около 2 лет и стал..

    LeetCode — Умножение строк
    Постановка задачи Даны два неотрицательных целых числа num1 и num2 , представленные в виде строк, вернуть произведение num1 и num2 , а также представлен в виде строки. Примечание . Вы..

    Как я могу подписаться на тему изображений в ROS Matlab и получить изображение RGB?
    Привет, Пожалуйста, как я могу извлечь изображение из сообщения ROS Image, за которым следует imshow? Я уже подписался на правильную тему, но message.getData() дает мне объект..

    Понимание СТРУКТУРЫ ДАННЫХ И АЛГОРИТМА.
    Что такое структуры данных и алгоритмы? Термин «структура данных» используется для описания того, как данные хранятся, а алгоритм используется для описания того, как данные сжимаются. И данные, и..

    Как интегрировать модель машинного обучения на ios с помощью CoreMl
    С выпуском новых функций, таких как CoreML, которые упростили преобразование модели машинного обучения в модель coreML. Доступная модель машинного обучения, которую можно преобразовать в модель..