238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
1

Почему JTable не заполняется данными из базы?

13.03.2013, 01:35. Показов 889. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пытаюсь заполнить JTable данными из MS Access базы, но постоянно сбрасывает на Exception из которого я понял что он ругается изза того что источник не известен:
Кликните здесь для просмотра всего текста
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid descriptor index
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLColAttributes(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getColAttribute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getColumnType(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.getObject(Unknown Source)
at Administrator12_03_13.Arsti.<init>(Arsti.java:42)
at Administrator12_03_13.Administrator$1.actionPerformed(Administrator.java:31)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


В самом коде использую Vector, так как не понимаю как заполнить Object[][] данными, одна сложность с Vector так это название колон приходится задавать как-то глупо, вот мой код, может кто укажет где ошибка:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import java.awt.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.table.*;
 
public class Arsti extends Administrator {
    ResultSet res;
    Statement st;
    Connection con;
    Vector columnNames = new Vector();   
    Vector data = new Vector(); 
    JTable table;
    JPanel tablePanel;
    JFrame arsti;
    public Arsti() {
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String Base = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=SL.mdb";
            con = DriverManager.getConnection(Base,"","");
            st = con.createStatement();
            res = st.executeQuery("SELECT * FROM Arsti");
            //название колон, так как названия в Аксесе колон сокращеные, тут хочу уже сделать нормальные названия
                        columnNames.addElement("ID");
            columnNames.addElement("Vards");
            columnNames.addElement("Uzvards");
            columnNames.addElement("Dzimums");
            columnNames.addElement("Personas kods");
            columnNames.addElement("Telefona numurs");
            columnNames.addElement("Nodalas ID");
            columnNames.addElement("Amata ID");
            while(res.next()) {
                Vector row = new Vector(8);
                for(int i=0; i<=8; i++) {
                    row.addElement(res.getObject(i));
                }
                data.addElement(row);
            }
            //res.close();
            //st.close();
        } catch(Exception e) {
            JOptionPane.showMessageDialog(null, "Error with connection to database");
            e.printStackTrace();
        }
        table = new JTable(data,columnNames);
        TableColumn col;
        for(int i=0; i<8; i++) {
            col = table.getColumnModel().getColumn(i);
            col.setWidth(3000);
        }
        JScrollPane scrollPane = new JScrollPane(table);
        tablePanel = new JPanel();
        tablePanel.add(scrollPane);
        arsti = new JFrame("Arstu tabula");
        arsti.add(tablePanel);
        arsti.setSize(1000,500);
        arsti.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        arsti.setVisible(true);
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2013, 01:35
Ответы с готовыми решениями:

DataGridView не заполняется данными
Среда Visual Basic STUDIO’2010 Professional Почему процедура, прикреплённая к кнопке, Не...

Структура не заполняется данными
Доброе время суток господа,помогите исправить ошибки в коде.При попытке ввода фамилии выдает...

GetLogicalDrives, контейнер не заполняется данными
Доброго дня!!! Люди подскажите, неработает, вектор пуст! Скажите что не так! Спасибо! int...

Матрица не заполняется данными из файла
Не могу найти проблему:#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using namespace...

0
13.03.2013, 01:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2013, 01:35
Помогаю со студенческими работами здесь

MySql. Таблица создается, но данными не заполняется
Добрый день! Столкнулся со следующей проблемой Программа на C# запрашивает список таблиц и...

Grid заполняется данными слишком медленно
Ребят подскажите пожалуйста. Вот проект, он состоит из грида и кнопок, меня пока интересует одно,...

List заполняется одними и теми же данными
List заполняется одними и теми же данными public void Skips() { ...

Заполнение JTable данными из SQL
тут возник вопрос как заполнять таблицу. Нашел интересный пример, вот только он нерабочий :\ а за...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru