您的位置:程序门 -> java -> 框架、开源



谁有时间帮我看看这样的基础问题? 谢谢!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


谁有时间帮我看看这样的基础问题? 谢谢!
发表于:2007-01-02 23:11:42 楼主
我做的是一个比较初级的考试系统,问题出现在管理试卷的阶段,我想实现的是试题更新的功能!
1.我做的试卷的部分代码
...............
<td   height= '25 '>
    &nbsp;⊙   <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)
发表于:2007-01-02 23:12:481楼 得分:0
我感觉我的update方法中并没有什么语法错误,是不是我还是没有把id获取到啊??
发表于:2007-01-03 00:08:162楼 得分:0
string   sql   =   "update   question   set   note=?,detail=?,standardanswer=?,choices=?,level=?   where   id=? ";
这句中set后面有没有空格?如果没有的话......
发表于:2007-01-03 00:21:003楼 得分:0
看错了,复制以后看到了。
不过发现几个问题:
1、session.setattribute( "id ",id);能把int型的id保存吗?
2、int   id   =   (integer)session.getattribute( "id ");这个能成立吗?   左边是int,右边是integer型......
发表于:2007-01-03 00:31:114楼 得分:0
那我应该如何改呢(第一个问题)
发表于:2007-01-03 09:13:515楼 得分:0
用session.setparameter应该是可以的。
发表于:2007-01-03 17:43:556楼 得分:0
我感觉问题好像不是出在session这里,好像不应用session来传参,应该用其他的方法;希望大家积极讨论,给我个答复!谢谢!
发表于:2007-01-03 18:35:277楼 得分:0
不知道accsee是否支持预处理的这种更新?


快速检索

最新资讯
热门点击