bao 发表于 2008-5-24 17:43

标准表达式中数据类型不匹配

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也不行 这是怎么回事?

千里冰封 发表于 2008-5-24 20:58

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

bao 发表于 2008-5-25 16:36

回复 2# 千里冰封 的帖子

我用的数据库是ACCESS  用中文做列名没问题吧  我的表名 叫 stu  里面有卡号 余额 等列

Ethip 发表于 2008-5-25 19:35

回复 3# bao 的帖子

用中文字符做字段名是会出问题的,迟早的事,必然事件!!!
其他的错误先放一边![tk07]

bao 发表于 2008-5-25 20:32

哦 好的 我以后改正 那我现在的问题该如何解决?

bao 发表于 2008-5-26 16:31

其中的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);
请各位看看这里有什么问题吗?

页: [1]

编程论坛