добавление данных в таблицу из базы данных

0

Я извлекаю данные из базы данных и помещаю ее в jtable, из базы данных поступает 11 элементов, но только 1-й элемент печатается на jtable 11 раз, я не знаю, где я делаю ошибку, я использовал переменную цикла в чтобы он мог автоматически увеличиваться, но не работал.

        try{

        java.util.Vector v=DatabaseManager.getGroceryItems(bean.getCategoryId());


        for(int i=0;i<v.size();i++){

            GroceryItemsBean bean2=(GroceryItemsBean)v.elementAt(i);

                row.add(bean2.getItemId());
                row.add(bean2.getItemName());
                row.add(bean2.getBarcode());
                row.add(bean2.getStock());
                row.add(bean2.getPurchasePrice());
                row.add(bean2.getUnitPrice());
                row.add(bean2.getDisc());
                row.add(bean2.getTax());
                row.add(bean2.getUnit());

                dataModel.addRow(row);

        }

    }catch(Exception e){
       e.printStackTrace();
       javax.swing.JOptionPane.showMessageDialog(this, "error: "+e.getMessage());
  }

Выход здесь

Теги:
swing

2 ответа

0
Лучший ответ

Вам нужно создать новый "вектор строки" для каждой строки данных в базе данных:

GroceryItemsBean bean2=(GroceryItemsBean)v.elementAt(i);
Vector<Object> row = new Vector<Object>();
  • 0
    Сэр, я использовал ваш ответ, и это сработало для меня, теперь каждая запись печатается на столе, но когда я выбираю другой элемент, тогда этот элемент появляется на столе, но последний элемент также появляется, я использовал stockTable.removeAll () ; удалить все из таблицы, прежде чем положить новый элемент, но это не работает
  • 0
    Вам необходимо удалить данные из DefaultTableModel, а не JTable. Вы можете использовать setRowCount(0) чтобы удалить все элементы из модели.
0

Я не вижу достаточно вашего кода, но он выглядит как новый объект row в цикле, иначе он все еще имеет значения с первой итерации цикла.

Или вы должны очистить строку в конце каждой итерации.

dataModel.addRow(row);
row.clear()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню