// my button
public void actionPerformed(ActionEvent arg0) {
String sorgu="UPDATE calisan SET CalisanAdi=? AND CalisanSoyadi=? AND kul_adi=? AND sifre=? WHERE idcalisan=? ";
DBConnection.KullaniciGuncelle(calisan_ad.getText(), calisan_soyad.getText(),calisan_kul_adi.getText(), calisan_sifre.getText(), sorgu);
}
怎么了?如果我添加列显示问题
参数索引超出范围(1>参数个数,为0)
public static void KullaniciGuncelle(String ad, String soyad, String kadi, String sifre,String sorgu){
connection();
try
{
Connection connect = DriverManager.getConnection(host, username , pass);
PreparedStatement statement = (PreparedStatement) connect.prepareStatement(sorgu);
statement.setString(1, ad);
statement.setString(2, soyad);
statement.setString(3, kadi);
statement.setString(4, sifre);
statement.executeUpdate();
statement.close();
connect.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
答案 0 :(得分:0)
您只在更新方法中绑定了四个参数。但是您的查询字符串包含五个。此外,您在查询中滥用AND
。
查询应为此,删除额外的AND
项。
UPDATE calisan
SET CalisanAdi=?, CalisanSoyadi=?,
kul_adi=?, sifre=?
WHERE idcalisan=? ";
您的更新方法需要额外参数绑定第五个?
。我想idcalisan
是一个ID(尽管我对土耳其人一无所知,抱歉)所以我建议setInt()
。
statement.setString(1, ad);
statement.setString(2, soyad);
statement.setString(3, kadi);
statement.setString(4, sifre);
statement.setInt (5, idcalisan)