2015-11-07 81 views
0

我有一個窗口顯示基於表中的數據我的數據,但問題是,當我更改,然後單擊保存按鈕時,我得到一個錯誤:錯誤:未指定值參數1.更新JTable單元格更改數據庫

但我並不想改變所有列只是最新的

​​

回答

1

But I do not want to change all columns just the latest

那麼,你需要改變你的SQL。目前你的SQL更新所有4列。

如果您只想更新單列,則需要4條SQL語句。您使用的聲明將基於已更改的列的索引。

喜歡的東西:

String sql = null; 

if (col == 0) 
    sql = "UPDATE impaye SET Date = ? " + row; 
else if (col == 1) 
    sql = "UPDATE impaye SET Débiteur = ? " + row); 
else if 
    ... 

preStat =(PreparedStatement) connexion.prepareStatement(sql); 
preStat.setObject(1, table.getValueAt(row, col)); 
preStat.executeUpdate(); 

我想你也需要在你的SQL中的 「where」 子句。我不認爲你可以指定一個行號(但我不太瞭解SQL)。

+0

因爲我試圖改變,但我總是有一個錯誤:錯誤:你的SQL語法有錯誤;檢查對應於你的MySQL服務器版本的手冊,在第1行使用接近'0'的正確語法 – Recay

+0

@Recay,我建議你的SQL是錯誤的。你需要閱讀一本關於SQL的書。你不能只指定「行」。通常你需要一個「where子句」來指定你想要更新的行。我不知道你的數據庫的結構或列名是什麼,所以我不能給你確切的SQL。查看關於[SQL Tutorial](http://docs.oracle.com/javase/tutorial/jdbc/overview/index.html)中「where」子句的更多信息。如果您沒有SQL引用來獲取圖書或找到一個很好的教程,我們不在這裏爲您編寫SQL,那麼您無法編寫SQL代碼。 – camickr

+0

我改變了,我添加了where子句,但我有這個錯誤:錯誤:SQL字符串不能爲空 – Recay