2016-03-19 2 views
0

пытаюсь редактировать и обновлять ячейки jtable, как в моем коде ниже. моя проблема в том, что одна строка при обновлении всех остальных строк получает одинаковые значения. Я имею в виду, что только одна строка обновляется, а все остальные дублируются. может ли кто-нибудь помочь с хорошим подходом. спасибокак редактировать/обновлять значения ячейки jtable в базе данных

int count = Table_purchase.getRowCount(); 
    int col = Table_purchase.getColumnCount(); 
    String pod_id[] = new String[count]; 
    String po_id[] = new String[count]; 
    String order_qty[] = new String[count]; 
    String item_id[] = new String[count]; 
    String unit_price[] = new String[count]; 
    String recived_qty[] = new String[count]; 
    String rejected_qty[] = new String[count]; 

    for (int i = 0; i < count; i++) { 
     po_id[i] = Table_purchase.getValueAt(i,0).toString(); 
     pod_id[i] = Table_purchase.getValueAt(i,1).toString(); 
     order_qty[i] = Table_purchase.getValueAt(i,2).toString(); 
     item_id[i] = Table_purchase.getValueAt(i,3).toString(); 
     unit_price[i] = Table_purchase.getValueAt(i,4).toString(); 
     recived_qty[i] = Table_purchase.getValueAt(i, 5).toString(); 
     rejected_qty[i] = Table_purchase.getValueAt(i,6).toString(); 

     try { 
      String sql = "update purchase.purchase_detail set pod_id='" + pod_id[i] + "',order_qty='" + order_qty[i] + "',item_id='" + item_id[i] + "', unit_price='" + unit_price[i] + "', recived_qty='" + recived_qty[i] + "',rejected_qty='" + rejected_qty[i] + "'where po_id= '" + po_id[i] + "'"; 
      pst = conn.prepareStatement(sql); 
      pst.execute(); 
      JOptionPane.showMessageDialog(null, "updated"); 
     } catch (Exception e) { 
      JOptionPane.showMessageDialog(null, e); 
     } 

    } 

ответ

0

Ваш SQL заявление не содержит где-положение, следовательно, все строки в таблице базы данных обновляется для каждой итерации свинг-строки таблицы, и в конце концов, все базы данных-строки будут имеют значения из последней строки swing-table-row.

(И, используйте pst.setParameter (http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html) и не смешивайте sql в gui-code.)

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