2015-11-07 61 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