| 发表于:2007-01-02 23:11:42 楼主 |
我做的是一个比较初级的考试系统,问题出现在管理试卷的阶段,我想实现的是试题更新的功能! 1.我做的试卷的部分代码 ............... <td height= '25 '> ⊙ <bean:write name= "e " property= "detail "/> </td> <td> <div align= 'center '> <bean:write name= "e " property= "note "/> </div> </td> <td> <div align= 'center '> <html:link page= "/questiondel.do " paramid= "id " paramname= "e " paramproperty= "id "> 删除 </html:link> </div> </td> <td> <div align= 'center '> <html:link page= "/questionpreupdate.do " paramid= "id " paramname= "e " paramproperty= "id "> 更新 </html:link> </div> </td> </tr> <tr> ................... 请注意,我已经将更新做了相关的链接!! 2.我的questionpreupdateaction部分代码(通过这个获得id的值,转发到更新界面) ................. public actionforward EXECute(actionmapping mapping, actionform form, httpservletrequest request, httpservletresponse response) { httpsession session = request.getsession(); int id = integer.valueof(request.getparameter( "id ")); session.setattribute( "id ",id); // todo auto-generated method stub return mapping.findforward( "suc "); .................. 3.我的更新界面(略) 4.我的updateaction代码(获得更新信息并执行更新操作最后返回到试卷主界面,显示更新后的结果) .................. public actionforward EXECute(actionmapping mapping, actionform form, httpservletrequest request, httpservletresponse response) throws exception { questionaddform questionaddform = (questionaddform) form;// todo auto-generated method stub httpsession session = request.getsession(); int id = (integer)session.getattribute( "id "); //int id = integer.valueof(questionaddform.getid()); string note = questionaddform.getnote(); string choices = questionaddform.getchoices(); string detail = questionaddform.getdetail(); string standardanswer = questionaddform.getstandardanswer(); int level = integer.valueof(questionaddform.getlevel()); bean_question ques = new bean_question(); ques.setid(id); ques.setchoices(choices); ques.setdetail(detail); ques.setlevel(level); ques.setnote(note); ques.setstandardanswer(standardanswer); questiondao dao = new questiondao(); dao.update(ques); return mapping.findforward( "suc "); } ................ 5.注:我的具体update方法如下:(questiondao.java) public void update(bean_question ques) throws exception { connection conn = databaseutil.getconnetion(); try { string sql = "update question set note=?,detail=?,standardanswer=?,choices=?,level=? where id=? "; preparedstatement pstmt = conn.preparestatement(sql); pstmt.setstring(1, ques.getnote()); pstmt.setstring(2, ques.getdetail()); pstmt.setstring(3, ques.getstandardanswer()); pstmt.setstring(4, ques.getchoices()); pstmt.setint(5, ques.getlevel()); pstmt.setint(6, ques.getid()); pstmt.EXECuteupdate(); pstmt.close(); } catch (sqlexception e) { e.printstacktrace(); } finally { conn.close(); } } ................................... 现在出现的错误如下: java.sql.sqlexception: [microsoft][odbc microsoft access driver] update 语句的语法错误。 at sun.jdbc.odbc.jdbcodbc.createsqlexception(jdbcodbc.java:6958) at sun.jdbc.odbc.jdbcodbc.standarderror(jdbcodbc.java:7115) at sun.jdbc.odbc.jdbcodbc.sqlEXECute(jdbcodbc.java:3150) at sun.jdbc.odbc.jdbcodbcpreparedstatement.EXECute(jdbcodbcpreparedstatement.java:214) at sun.jdbc.odbc.jdbcodbcpreparedstatement.EXECuteupdate(jdbcodbcpreparedstatement.java:136) at com.neusoft.model.dao.questiondao.update(questiondao.java:163) at com.neusoft.struts.action.questionupdateaction.EXECute(questionupdateaction.java:61) at org.apache.struts.action.requestprocessor.processactionperform(requestprocessor.java:484) at org.apache.struts.action.requestprocessor.process(requestprocessor.java:274) at org.apache.struts.action.actionservlet.process(actionservlet.java:1482) at org.apache.struts.action.actionservlet.dopost(actionservlet.java:525) at javax.servlet.http.httpservlet.service(httpservlet.java:763) at javax.servlet.http.httpservlet.service(httpservlet.java:856) at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:284) at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:204) at org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:257) at org.apache.catalina.core.standardvalvecontext.invokenext(standardvalvecontext.java:151) at org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:567) at org.apache.catalina.core.standardcontextvalve.invokeinternal(standardcontextvalve.java:245) at org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:199) at org.apache.catalina.core.standardvalvecontext.invokenext(standardvalvecontext.java:151) at org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:567) at org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:184) at org.apache.catalina.core.standardvalvecontext.invokenext(standardvalvecontext.java:151) at org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:164) at org.apache.catalina.core.standardvalvecontext.invokenext(standardvalvecontext.java:149) at org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:567) at org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:156) at org.apache.catalina.core.standardvalvecontext.invokenext(standardvalvecontext.java:151) at org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:567) at org.apache.catalina.core.containerbase.invoke(containerbase.java:972) at org.apache.coyote.tomcat5.coyoteadapter.service(coyoteadapter.java:206) at org.apache.coyote.http11.http11processor.process(http11processor.java:833) at org.apache.coyote.http11.http11protocol$http11connectionhandler.processconnection(http11protocol.java:732) at org.apache.tomcat.util.net.tcpworkerthread.runit(pooltcpendpoint.java:619) at org.apache.tomcat.util.threads.threadpool$controlrunnable.run(threadpool.java:688) at java.lang.thread.run(thread.java:595) |
|
|
|
|