| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 267 人关注过本帖
标题:标准表达式中数据类型不匹配
收藏  订阅  推荐  打印 
bao
Rank: 2
等级:注册会员
帖子:40
积分:552
注册:2008-5-24
标准表达式中数据类型不匹配

double cost=0;

cost=Double.parseDouble(rsd.getString( "end"))-Double.parseDouble(rsd.getString( "start"));
Statement sql=con.createStatement();
int rs=sql.executeUpdate("update stu set 余额=(余额-"+cost+") where 卡号='"+jComboBox2.getSelectedItem().toString()+"'"
);
end 和start 是自1900年以后的毫秒数 我的余额数据类型无论是双精度 还是长整形 都报错
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 标准表达式中数据类型不匹配。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)

都改成Integert也不行 这是怎么回事?
搜索更多相关主题的帖子: 式中  quot  整形  类型  数据  
2008-5-24 17:43
千里冰封
Rank: 12Rank: 12Rank: 12
来自:灌水之王
等级:版主
威望:155
帖子:28360
积分:4616
注册:2006-2-26

表是如何建的
还有,你怎么会用中文做列名呢?

可惜不是你,陪我到最后
2008-5-24 20:58
bao
Rank: 2
等级:注册会员
帖子:40
积分:552
注册:2008-5-24
回复 2# 千里冰封 的帖子

我用的数据库是ACCESS  用中文做列名没问题吧  我的表名 叫 stu  里面有卡号 余额 等列
2008-5-25 16:36
Ethip
Rank: 4
等级:高级会员
威望:6
帖子:720
积分:7972
注册:2008-1-18
回复 3# bao 的帖子

用中文字符做字段名是会出问题的,迟早的事,必然事件!!!
其他的错误先放一边!
2008-5-25 19:35
bao
Rank: 2
等级:注册会员
帖子:40
积分:552
注册:2008-5-24

哦 好的 我以后改正 那我现在的问题该如何解决?
2008-5-25 20:32
bao
Rank: 2
等级:注册会员
帖子:40
积分:552
注册:2008-5-24

其中的end和start字段 来自一个叫event的表 表示当前日期的毫秒数 当我用表格显示这个event
的表时 运行的时候只显示第一行 报错
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]非法的描述器索引
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLColAttributes(JdbcOdbc.java:2613)
at sun.jdbc.odbc.JdbcOdbcResultSet.getColAttribute(JdbcOdbcResultSet.java:5444)
at sun.jdbc.odbc.JdbcOdbcResultSet.getColumnType(JdbcOdbcResultSet.java:6055)
at sun.jdbc.odbc.JdbcOdbcResultSet.getMaxCharLen(JdbcOdbcResultSet.java:5472)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:278)
而且我发现其中的日期是1899年12月30日的 所以我想可能是日期出问题了
我的日期是这样写的
SimpleDateFormat sd=new SimpleDateFormat(" HH:mm:ss");
String str=sd.format(new Date());

Date date1=new Date();
long t1=date1.getTime();

jTextField2.setText(str);
jTextField1.setText(""+t1);
请各位看看这里有什么问题吗?
2008-5-26 16:31
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.053597 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved