有大佬能来看看这个报错怎么解决吗

weixin_42180046 2018-05-10 02:58:29
功能是这样,从数据库读取生产日期并和现在时间做运算,算出从生产到现在已经过了多久,然后取出保质期的数据与其作比较,将快过期的商品数据显示到JTable里,代码如下,该怎么修改呢

报错:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Vector
at javax.swing.table.DefaultTableModel.justifyRows(Unknown Source)
at javax.swing.table.DefaultTableModel.setDataVector(Unknown Source)
at csg.ExpiryDate.expirydate(ExpiryDate.java:95)
at csg.List$listener.actionPerformed(List.java:101)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)


try{
Vector<String> expDate=new Vector<String>();
//SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date currently = c.getTime();
Connection conn;
Class.forName(dbdriver);
conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=超市管理系统","aa","000");
PreparedStatement ED=conn.prepareStatement("select 保质期 from 商品");
PreparedStatement PD=conn.prepareStatement("select 生产日期 from 商品");
PreparedStatement all=conn.prepareStatement("select * from 商品");
ResultSet allrs=all.executeQuery();
ResultSetMetaData allrm=allrs.getMetaData();
ResultSet EDRS=ED.executeQuery();
ResultSet PDRS=PD.executeQuery();
ResultSetMetaData EDRM=EDRS.getMetaData();
ResultSetMetaData PDRM=PDRS.getMetaData();
long days,eDate;
Vector<Long> v1=new Vector<Long>();
Vector<Long> v2=new Vector<Long>();
Vector<String> v3=new Vector<String>();

while(EDRS.next()&&PDRS.next()&&allrs.next()) {
for(int i = 1; i <= EDRM.getColumnCount(); i++){
int edate=EDRS.getInt(i);
eDate=edate;
Date prDate=new Date();
for(int j = 1; j <= PDRM.getColumnCount(); j++){
prDate=PDRS.getDate(j);
days=(currently.getTime()-prDate.getTime())/(24*3600*1000);
long l1=eDate-days;
String s1=String.valueOf(l1);
// v3.add(s1);
i++;
j++;

if((eDate-days)>15) {

for(int k=1;k<=allrm.getColumnCount();k++) {
expDate.addElement(allrs.getString(k));

}
//expDate.addElement(s1);
}

}
}
}
System.out.println(expDate);
tableModel.setDataVector(expDate, getHead.getHead());
//catch什么的就不写了

...全文
520 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_42180046 2018-05-11
  • 打赏
  • 举报
回复
已经解决了,
  • 打赏
  • 举报
回复
类型转换错误,最简单的办法就是debug跟踪下
weixin_42180046 2018-05-10
  • 打赏
  • 举报
回复
找到办法了,用getDate(String columnLabel)
weixin_42180046 2018-05-10
  • 打赏
  • 举报
回复
类型转换该怎么改?这样是可以取出我需要的数据的,打印出来是没问题的,就是类型转换... 而且获取商品集合算的话,怎么特定生产日期和保质期的位置?能说具体点吗?
daojian_ 2018-05-10
  • 打赏
  • 举报
回复
类型转换错了,还有逻辑有点问题吧?既然保质期和时间在一个表里面,只需要获取商品集合就行了吧?
weixin_42180046 2018-05-10
  • 打赏
  • 举报
回复
啊还有,csdn另一个号怎么有分数不能发帖了?分数还剩一些,结帖率应该是100%,但是发帖会显示积分c币都不足...

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧