2

defaulttablemodel のすべての値を SQL データベースに保存しようとしていますが、table.valueAt() を介して最後に挿入された行に値を出力しようとすると、null が返されます。

try{
    System.out.print(table.getValueAt(5,0)); //<- this returns null even if the table.getRowCount() is 6

    for(int i=0; i<table.getRowCount();i++){
        if((Boolean)table.getValueAt(i,1)) val=1;
        else val=0; 
        //System.out.print(table.getValueAt(i, 0) +","+ val);
        String sql1 = "INSERT INTO HREmpListofCard (EmpID, CardNbr, Status, Remarks) VALUES ("
            +"'"+empID
            +"','"+table.getValueAt(i, 0).toString() 
            +"','"+val
            +"','"+table.getValueAt(i,2).toString()+"')";

        try {
            DBConnect.getConnection().createStatement().executeUpdate(sql1);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(ListOfCardID.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(ListOfCardID.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}catch(Exception e){
    System.out.print("\nerror!");
}
4

1 に答える 1

2

2番目の質問です。クエリ内に配置する前に、テーブル内の変数を確認できます。たとえば、これを行うことができます:

 String item1;

 if(table.getValueAt(i, 0) != null)
     item1 = table.getValueAt(i, 0);
 else
     item1 = null;

item1を「table.getValueAt(i、0)」に置き換え、「table.getValueAt(i、2)」のitem2を作成します。

String sql1 = "INSERT INTO HREmpListofCard (EmpID, CardNbr, Status, Remarks) VALUES ("             
        +"'"+empID             
        +"','"+ITEM1
        +"','"+val             
        +"','"+ITEM2+"')";  

私はこれをテストしていないので、うまくいくかどうかわかりません:)

幸運を!

于 2012-04-24T09:31:35.053 に答える