jdbc连接access,问什么是“标准表达式式中类型不匹配”,好像没错误啊
java与形式出现这种错误:[Microsoft][ODBC Microsoft Access 驱动程序] 标准表达式中数据类型不匹配。程序代码:
[code]for(i=0;i<5;i++)
for(j=0;j<7;j++)
{
sql="update (coursetable) set course='"+text1[i][j].getText()+"' where week='"+j+"'and sequence='"+i+"'";
stmt.executeUpdate(sql);
//stmt.execute(sql3);
//st.close();
}
for(j=0;j<7;j++)
{
sql="update (coursetable) set course='"+text1[i][j].getText()+"' where week='"+j+"'and sequence='"+i+"'";
stmt.executeUpdate(sql);
//stmt.execute(sql3);
//st.close();
}
我的数据库中有三个字段,分别是week,sequence和course,类型分别为,数字,数字,文本型;且都是变量,就是从输入中获取。
求大神解决啊,编译报告说 标准表达式中数据类型不匹配。
这句好像没问题啊!! sql="update (coursetable) set course='"+text1[i][j].getText()+"' where week='"+j+"'and sequence='"+i+"'";
[ 本帖最后由 liuqingdeh 于 2013-1-9 16:54 编辑 ]
----------------解决方案--------------------------------------------------------
这样看确实没有错误
你把你的sql语句些简单些 看编译是否可以通过
----------------解决方案--------------------------------------------------------
暂时看不出问题
给你一个方法吧,先把sql定死 例如 sql="update (coursetable) set course='1' where week='2'and sequence='3'";
运行是否报错,如果保存,说明是和3个参数无关,sql语句本身有问题或者问题不在你所给出的代码中
如果运行不报错,那就是3个参数的问题
再给你一个提醒,你这样写容易被sql注入
----------------解决方案--------------------------------------------------------
数字不需要单引号
尽量用参数的形式来保存
----------------解决方案--------------------------------------------------------
你这个问题不在代码上,看看数据类型匹配不,不行话换下数据库从新建立下。 我以前貌似遇到过这类问题。
----------------解决方案--------------------------------------------------------