2012-04-22 22 views
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

実際には、列0の値はnullですか?もしあなたがテーブルモデルに何を入れていないのであれば? 'toString()'を明示的に呼び出す必要はなく、 '... + table.getValueAt(i、0)+ ...'だけを書くことができます。コンパイラは、これを '... + String.valueOf(table.getValueAt(i、0))+ ...'に変更し、nullを正しく処理します。 – Thomas

+0

row5、column0のセルに表示される値は何ですか?返信ありがとう。 – Bitmap

+0

私は行5の列0の値をjTable経由で入れましたが、保存して値を印刷するとnullが返されます。値を保存しようとする前にtable.fireのようなものを置く必要がありますか? – John

答えて

0

あなたの2番目の質問は。 テーブル内の変数は、クエリ内に配置する前にチェックすることができます。

String item1; 

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

はあなた "table.getValueAt(I、0)" とITEM1を交換し、あなたの "table.getValueAt(I、2)"

String sql1 = "INSERT INTO HREmpListofCard (EmpID, CardNbr, Status, Remarks) VALUES ("    
     +"'"+empID    
     +"','"+ITEM1 
     +"','"+val    
     +"','"+ITEM2+"')"; 
ためITEM2を作成します。たとえば、あなたがこれを行うことができます

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

幸運!

関連する問題