2016-03-31 6 views
0

Ich möchte für jede Zeile aus einer Jtable eine Datenbank hinzufügen. z.B. Es fügt das erste Produkt in der Tabelle hinzu, aber ich möchte es jedes hinzufügen.Zur Datenbank für jede Zeile in JTable hinzufügen

private void addToInvoiceLine(){ 
try { 
     String sql = "Insert Into invoiceLine (invoiceID,SKU,quantity) values (?,?,?)"; 
     pst = conn.prepareStatement(sql); 
     int row = resultsTable.getSelectedRow(); 

     String sku = (orderTable.getModel().getValueAt(row, 0).toString()); 
     String quantity = (orderTable.getModel().getValueAt(row, 2).toString()); 
     pst.setString(1, invoiceNo.getText()); 
     pst.setString(2, sku); 
     pst.setString(3, quantity); 

     pst.execute(); 


    } catch (SQLException | HeadlessException e) { 

     JOptionPane.showMessageDialog(null, e); 
    } finally { 
     try { 
      rs.close(); 
      pst.close(); 
     } catch (Exception e) { 
     } 
    } 

} 
+0

Haben Sie alle Zeilen in dem 'Jtable' zu ​​der Datenbanktabelle kopieren? –

+0

Ja welches Produkt auch immer zur jTabelle hinzugefügt wurde – ZeeSoft

+0

Und was ist falsch an der Verwendung einer Schleife? 'für (int row = 0; row AJNeufeld

Antwort

0

Sie benötigen eine Schleife, die iteriert über jede Zeile in der Tabelle zu machen, wie folgt aus:

private void addToInvoiceLine(){ 
    try { 
     String sql = "INSERT INTO invoiceLine (invoiceID,SKU,quantity) VALUES (?,?,?)"; 
     pst = conn.prepareStatement(sql); 


     for(int row=0; row<orderTable.getModel().getRowCount(); row++){ 
      String sku = orderTable.getModel().getValueAt(row, 0).toString(); 
      String quantity = orderTable.getModel().getValueAt(row, 2).toString(); 

      pst.setString(1, invoiceNo.getText()); 
      pst.setString(2, sku); 
      pst.setString(3, quantity); 

      pst.execute(); 
     } 


    } catch (SQLException | HeadlessException e) { 
     JOptionPane.showMessageDialog(null, e); 
    } finally { 
     try { 
      rs.close(); 
      pst.close(); 
     } catch (Exception e) { 
     } 
    } 

}