2015-04-16 2 views
1

Когда я нажимаю на свою предыдущую кнопку, мои текстовые поля не заполняются значениями из БД. Это дает мне ошибку java.sql.SQLException:Java jdbc SQLException в mysql

Столбец 'PassengerName' не найден.

Столбец PassengerName существует в моей БД. Может кто-нибудь сказать мне, что не так, пожалуйста?

Вот мой код:

public PaymentForm() { 

    try { 
     Class.forName("com.mysql.jdbc.Driver"); 
     con = DriverManager.getConnection(url, user, password); 
     stt = con.prepareStatement("SELECT * FROM payment"); 

     rs = stt.executeQuery(); 

     JOptionPane.showMessageDialog(null, "Connection Successful to Database", "Success", JOptionPane.INFORMATION_MESSAGE); 

    }catch(Exception e) { 
     JOptionPane.showMessageDialog(null, "Error in connecting to db", "Error", JOptionPane.ERROR_MESSAGE); 
    } 

    initialize(); 
    } 
} 

    JButton btnPrev = new JButton("Previous"); 
    btnPrev.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 

      try { 
      if (rs.previous()) { 

        pass.setSelectedItem(rs.getString("PassengerName")); 

        int d = rs.getInt("InvoiceNo"); 
        in.setText(String.valueOf(d)); 
        int d2 = rs.getInt("CardNo"); 
        cn.setText(String.valueOf(d2)); 
        double pr = rs.getDouble("Price"); 
        tp.setText(String.valueOf(pr)); 

        nc.setText(rs.getString("Name")); 
      }else { 
       rs.next(); 
       JOptionPane.showMessageDialog(null, "No more records"); 
      } 

      }catch(Exception e1) { 
        JOptionPane.showMessageDialog(null, "Error"); 
        e1.printStackTrace(); 
+0

Не могли бы вы также рассказать о запросе или 'Statement', который вы используете для создания' rs'? –

+0

@MickMnemonic - Edited :) –

+0

Проверьте выбранный SQL-запрос. Убедитесь, что вы включили столбец PassengerName в списке столбцов выбора. также проверьте таблицу базы данных и убедитесь, что у вас нет опечатки в ur select SQL-запросе. – Bikku

ответ

1

Ваш запрос не включает в себя этот столбец ... когда вы GetString на результирующем вы получите сообщение об ошибке.

В качестве примечания: вы можете прочитать значения столбцов из ResultSet с использованием непосредственно GetString (...), даже если базовый тип не является строкой

+0

Столбец правильно написано bro:/ –

+0

Ops sorry see my edit – Andrea

+0

У меня есть последователь ng имена столбцов в моей таблице: Точные слова. InvoiceNo PassengerName CardNo Название Цена –

1

ВЫБРАТЬ PassengerName ОТ оплаты

попробовать выполнить выше заявление в MySQL напрямую и посмотреть, если это даст вам результат

1
  1. не используйте запрос с * селектор в коде, как «SELECT * FROM платежа», просто перечислить всю необходимую колонку, как "'SELECT ID, PassengerName FROM payment' '.
  2. Убедитесь, что платеж таблица имеет столбец с именем «PassengerName»
0

Я должен создать таблицу метод обновления(). В методе я выбираю * из таблицы. Затем я вызываю метод после метода initialize().

Смежные вопросы