当前位置: 首页 > 知识库问答 >
问题:

第1行的“advance”列的MySql数据被截断

应和悦
2023-03-14

在我的项目中,我使用了txtAdvance的关键事件

    double gtotal = Double.parseDouble(txtGtotal.getText());
    double ad = Double.parseDouble(txtAdvance.getText());
    double due = gtotal - ad;
    txtDue.setText(String.valueOf(due));

在最后一行运行之后,我添加了一个保存按钮来保存这些数据。下面给出了查询。

    public void saveInvoice(JTextField txtgtotal, JTextField txtAdvance, JTextField txtDue, JTextField txtInID) {

    try {
        db.putData("INSERT INTO indetails(inid, gtotal, advance, due) VALUES( '" + txtInID.getText() + "' ,'" + txtgtotal.getText() + "' , '" + txtAdvance.getText() + " ' " + " , '" + txtDue.getText() + "') ");
        JOptionPane.showMessageDialog(null, txtAdvance.getText());

        JOptionPane.showMessageDialog(null, "Invoice details saved");
    } 
    catch (Exception e) {
        JOptionPane.showMessageDialog(null, this.getClass().getName() + " first " + e);
    }
}

我正在截断第1行的列“advance”的MySql数据。advance的数据类型为Double。但我找不到办法来计算长度
(例如
列名:iid,数据类型:Int

我正在使用 MySQL 查询浏览器 。问题是当我向txt添加0值时,我遇到了这个错误。

共有2个答案

常茂
2023-03-14

您应该为查询使用数据库驱动程序,而不是手动创建查询:

PreparedStatement putData=con.prepareStatement(“插入到indetails(inid,gtotal,advance,due)VALUES(?,?,?)”);

double gtotal = Double.parseDouble(txtGtotal.getText());
double ad = Double.parseDouble(txtAdvance.getText());
double due = gtotal - ad;

putData.setInt(1, inid);
putData.setDouble(2, gtotal);
putData.setDouble(3, ad);
putData.setDouble(4, due);

try {
    putData.execute();
    JOptionPane.showMessageDialog(null, txtAdvance.getText());
    JOptionPane.showMessageDialog(null, "Invoice details saved");
} 
catch (Exception e) {
    JOptionPane.showMessageDialog(null, this.getClass().getName() + " first " + e);
}
狄旻
2023-03-14

如果您尝试保存的数据有小数点,则将高级数据类型更改为长度为10,3的double,其中10表示位数,3表示小数位数。

使用此查询,

db.putData("INSERT INTO indetails(inid, gtotal, advance, due) VALUES(" + txtInID.getText() + "," + txtgtotal.getText() + "," + txtAdvance.getText() + "," + txtDue.getText()+")");
 类似资料:
  • 在我的javaweb应用程序中,我将一些记录插入MySql数据库。我有一个列名“value”,其字段类型为float。当我将以下值76.8653846153846插入到数据库中时,它给出了在第1行为列“value”截断数据的异常。我将字段类型更改为Double,但消息相同。知道吗? 领域描述:

  • 我试图插入数据从ArrayList到一个mysql表Java,但是我一直得到以下错误:java.sql.SQLException:数据截断列'AAL'在第1行。 以下是一些代码: 任何帮助都非常感谢。

  • 您好,我正在尝试向mysql列添加数据,但在输入了一些数据后,它抛出了主题提到的错误

  • 问题内容: 我试图将照片插入到MySQL表的BLOB列中,但出现异常: 这是JDBC: 我该如何解决这个问题? 问题答案: 您试图插入的数据大于列允许的数据。 根据需要使用以下数据类型 使用以避免此异常。

  • 问题内容: 在更改MySql列的数据类型以存储Twilio调用 ID(34个字符字符串)之后,我尝试使用以下方法手动更改该列中的数据: 但是,我看到一个错误,因为正确修改了列的数据类型,所以没有意义吗? 问题答案: 您的问题是,目前您的栏定义为应在何时。 要解决此问题,只需发出此命令即可将列的长度从1更改为34 这是 SQLFiddle 演示

  • 我试图保护我的数据库中的一些数据,并获得以下错误: SQLSTATE[01000]:警告:第1行“nsfw”列的1265数据被截断 nsfw列的标准值为0。那是我的桌子: nsfw列也位于模型数组中。 我想检测是否选中了复选框。如果选中,则nsfw应为1。如果不是,则nsfw应为0。 这是复选框HTML代码: 这就是控制器代码: 谢谢你的帮助,很抱歉我的英语不好!