2017-03-13 31 views
0

我想要插入產品到表中。爲此我有一個日期字段,我使用日期選擇器組合。並添加日期該產品我寫了下面的代碼,無法格式化給定的對象作爲日期

String sql = "INSERT INTO ProductInfo(Name,Price,Date,Image,Category) values(?,?,?,?,?) "; 
      pst=conn.prepareStatement(sql); 
      pst.execute(); 

      pst.setString(1, txt_name.getText()); 
      pst.setString(2, txt_price.getText()); 

      SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy"); 
      String addDate = dateFormat.format(txt_AddDate.getDateFormat()); 
      pst.setString(3, addDate); 

但是,這是給我「無法格式化給定的對象爲日期」錯誤。我嘗試了很多,但無法解決。任何人都可以幫我嗎?

+0

添加完整的堆棧跟蹤 – Jens

+0

爲什麼不把日期添加爲'java.sql.Date'? – Zircon

+0

[在PreparedStatement中使用setDate]的可能的重複(http://stackoverflow.com/questions/18614836/using-setdate-in-preparedstatement) – Nikolas

回答

0

pst.setString(3, addDate); 

你是在告訴你想在一個日期屬性使用字符串。

您應將其更改爲

pst.setDate(3, addDate); 

而且還爲什麼不使用你有約會嗎? 爲什麼不呢?

pst.setDate(3, txt_AddDate.getDateFormat()); 

如果不工作,因爲格式或簡單,因爲它不返回的日期,但您仍想使用你可以使用類似SimpleDateFormat的:

pst.setDate(3, java.sql.Date.valueOf(addDate));