2015-11-08 3 views
1

У меня есть таблица базы данных в Ms-Access, с именами звонков CANDIDATE1, CANDIDATE2, CANDIDATE3, CANDIDATE4, CANDIDATE5. У меня есть query, который в коде нижеКолонка не найдена в Java

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 
    try 
    { 
     String s = (String) jComboBox1.getSelectedItem(); 
     String sql = "SELECT '"+s+"' FROM results"; 
     rs = st.executeQuery(sql); 
     while(rs.next()) 
     { 
      jLabel1.setText(rs.getString(s)); 
     } 
     JOptionPane.showMessageDialog(null,"U have voted "+jComboBox1.getSelectedItem()+",thank you!"); 

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

    } 
}   

, когда я пытаюсь запустить программу, бросает мне ошибку Column not found. Могу ли я узнать, что не так с моим кодом или запросом?

net.ucanaccess.jdbc.UcanaccessSQLException: Column not found: ADMK 
at net.ucanaccess.jdbc.UcanaccessResultSet.getString(UcanaccessResultSet.java:689) at 

net.ucanaccess.jdbc.UcanaccessResultSet.getString(UcanaccessResultSet.java:689) 
    at pack.user_vote.jButton1ActionPerformed(user_vote.java:152) 
    at pack.user_vote.access$000(user_vote.java:21) 
    at pack.user_vote$1.actionPerformed(user_vote.java:87) 
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) 
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 
    at java.awt.Component.processMouseEvent(Component.java:6525) 
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) 
    at java.awt.Component.processEvent(Component.java:6290) 
    at java.awt.Container.processEvent(Container.java:2234) 
    at java.awt.Component.dispatchEventImpl(Component.java:4881) 
    at java.awt.Container.dispatchEventImpl(Container.java:2292) 
    at java.awt.Component.dispatchEvent(Component.java:4703) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898) 
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533) 
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462) 
    at java.awt.Container.dispatchEventImpl(Container.java:2278) 
    at java.awt.Window.dispatchEventImpl(Window.java:2739) 
    at java.awt.Component.dispatchEvent(Component.java:4703) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746) 
    at java.awt.EventQueue.access$400(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:697) 
    at java.awt.EventQueue$3.run(EventQueue.java:691) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) 
    at java.awt.EventQueue$4.run(EventQueue.java:719) 
    at java.awt.EventQueue$4.run(EventQueue.java:717) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:716) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 
Caused by: java.sql.SQLException: Column not found: ADMK 
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source) 
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source) 
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source) 
    at org.hsqldb.jdbc.JDBCResultSet.findColumn(Unknown Source) 
    at org.hsqldb.jdbc.JDBCResultSet.getString(Unknown Source) 
    at net.ucanaccess.jdbc.UcanaccessResultSet.getString(UcanaccessResultSet.java:687) 
    ... 39 more 
Caused by: org.hsqldb.HsqlException: Column not found: ADMK 
    at org.hsqldb.error.Error.error(Unknown Source) 
    at org.hsqldb.error.Error.error(Unknown Source) 
    ... 43 more 

Примечание: Я использую ucanaccess для подключения к базам данных.

+1

показать свой стек след. –

+0

Попробуйте распечатать строку sql и проверить с db, присутствует ли столбец или нет? – Shriram

+0

Видимо, все, что вы получаете из поля со списком, не является допустимым именем столбца. Было бы полезно увидеть трассировку стека – Thevenin

ответ

4

Я думаю, что вы добавляете бесполезные простые кавычки, это должно быть

String sql = "SELECT "+s+" FROM results"; 

(примечание: вы пытаетесь получить значение из столбца, а не просто строка)

+0

Я могу получить доступ только к нескольким столбцам, в которых говорится, что «пользователь не имеет привилегии или объекта не найден», почему это так? –

+0

Можете ли вы сказать, какие из них? –

+0

У меня всего 5 столбцов, в том, что 1,2,5 не работают. –

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