提交数据时数据类型不匹配错误

时间:2017-03-14 07:25:16

标签: java

我有一个带有8个JComboboxes和textfield的Jframe ...当我按下提交按钮时出现数据类型不匹配错误

try
                {


                     String Query="replace into enquiry (`Enquiry No`,`Client`,`User`,`Purchase`,`Sales`,"
                            + "`Date`,`Technical Data`,"
                            + "`Product`,`Remarks`,`Amount`,`Userboss`,`PurchaserBoss`,`SalesBoss`,`month`,`Pagency`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

                    PreparedStatement pst=conn.prepareStatement(Query);

                    pst.setString(1, textField.getText());
                    String c=client.getSelectedItem().toString();
                    pst.setString(2, c);
                    String u=user.getSelectedItem().toString();
                    pst.setString(3, u);
                    String p=purchase.getSelectedItem().toString();
                    pst.setString(4,p);
                    String se=sengg.getSelectedItem().toString();
                    pst.setString(5, se);
                    pst.setString(6, ed.getText());
                    pst.setString(7, td.getText());
                    String pd=prod.getSelectedItem().toString();
                    pst.setString(8, pd);
                    pst.setString(9, remark.getText());
                    pst.setString(10, amt.getText());
                    String ub=uboss.getSelectedItem().toString();
                    pst.setString(11, ub);
                    String pb=pboss.getSelectedItem().toString();
                    pst.setString(12, pb);
                    String sb=sboss.getSelectedItem().toString();
                    pst.setString(13, sb);
                    pst.setString(14, qmonth.getText());
                    String pa1=pa.getSelectedItem().toString();
                    pst.setString(15, pa1);
                    pst.execute();


                }

如何解决这个错误?

1 个答案:

答案 0 :(得分:0)

您正在使用PreparedStatement.setString(int index, String x)String传递到Date列。

日期列有PreparedStatement.setDate(int index, java.sql.Date date)方法。

只需解析您拥有的String并将此java.util.Date实例传递给该方法。

PS:java.sql.Datejava.util.Date的子类。

编辑: 在评论中,您说您只需使用new GregorianCalendar()获取当前日期即可构建字符串。因此,您只需传递new Date()即可获得当前日期。

java.util.Date()

  

分配一个Date对象并对其进行初始化,使其表示分配时间,测量精确到毫秒。