简体   繁体   English

数据截断:截断了错误的DOUBLE值

[英]Data truncation: Truncated incorrect DOUBLE value

// 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);
}

What's wrong? 怎么了? If I add column this show problems 如果我添加列这显示问题

parameter index out of range (1 > number of parameters, which is 0) 参数索引超出范围(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();  
}

You're only binding four parameters in your update method. 您只需在更新方法中绑定四个参数。 But your query string contains five. 但是您的查询字符串包含五个。 Also, you're misusing AND in your query. 另外,您在查询中误用了AND

The query should be this, removing the extra AND items. 查询应为此,删除多余的AND项。

UPDATE calisan 
   SET CalisanAdi=?, CalisanSoyadi=?,
       kul_adi=?, sifre=?
WHERE idcalisan=? ";

Your update method needs an extra parameter bind for the fifth ? 您的更新方法需要为第五个附加参数绑定? . I guess idcalisan is an ID (even though I'm ignorant of Turkish, sorry) so I've suggested setInt() . 我猜idcalisan是一个ID(即使我不懂土耳其语,对不起),所以我建议setInt()

    statement.setString(1, ad);
    statement.setString(2, soyad);
    statement.setString(3, kadi);
    statement.setString(4, sifre);
    statement.setInt   (5, idcalisan)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM