1
私はSQLデータベースにdefaulttablemodelのすべての値を保存しようとしていますが、table.valueAt()経由で最後に挿入された行の値を出力しようとするたびにnullを返します。getValueAt()メソッドが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!");
}
実際には、列0の値はnullですか?もしあなたがテーブルモデルに何を入れていないのであれば? 'toString()'を明示的に呼び出す必要はなく、 '... + table.getValueAt(i、0)+ ...'だけを書くことができます。コンパイラは、これを '... + String.valueOf(table.getValueAt(i、0))+ ...'に変更し、nullを正しく処理します。 – Thomas
row5、column0のセルに表示される値は何ですか?返信ありがとう。 – Bitmap
私は行5の列0の値をjTable経由で入れましたが、保存して値を印刷するとnullが返されます。値を保存しようとする前にtable.fireのようなものを置く必要がありますか? – John