我有一个带有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();
}
如何解决这个错误?
答案 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.Date
是java.util.Date
的子类。
编辑:
在评论中,您说您只需使用new GregorianCalendar()
获取当前日期即可构建字符串。因此,您只需传递new Date()
即可获得当前日期。
分配一个Date对象并对其进行初始化,使其表示分配时间,测量精确到毫秒。