我做一个修改数据的jsp动态网页,错误信息提示:“标准表达式中数据类型不匹配”,这一问题怎么解决?

我做一个修改表单数据并提交到access数据库中的jsp动态网页,我的处理表单数据的jsp网页代代码如下:
<%
//加载驱动类
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//连接字符串
String url = "jdbc:odbc:NewsDatabase";
//连接用户名及密码,在Access里一般为空
String user = "";
String pwd = "";
//创建连接
Connection con = DriverManager.getConnection(url, user, pwd);
//建立Statement操作对象
Statement stmt = con.createStatement();
//建立ResultSet结果集,并执行SQL语句
request.setCharacterEncoding("gb2312");
String newsid= request.getParameter("newsid");
String writer=request.getParameter("txtwriter");
String time=request.getParameter("txtuptime");
String title=request.getParameter("txttitle");
String content=request.getParameter("txtcontent");
String str="update newsinfo set title='"+title+"',writers='"+writer+"',uptime='"+time+"',content='"+content+"' where newsId="+newsid+"";
stmt.executeUpdate(str);

con.close();
stmt.close();
out.print("<script>alert('修改成功!');</script>");

%>
运行后,错误信息提示:“标准表达式中数据类型不匹配”,我的access数据库中newsId字段数据类型设为自动编号,content为备注型,uptime为时间类型,其他为文本型,请教各位朋友帮我解决这一问题,我在线等待,谢谢!
因字数限制,补充如下部分主要错误信息:
org.apache.jasper.JasperException: An exception occurred processing JSP page /doEditnews.jsp at line 54
53: String str="update newsinfo set title='"+title+"',writers='"+writer+"',uptime='"+time+"',content='"+content+"' where newsId="+newsid+"";
54: stmt.executeUpdate(str);
55:
56: con.close();
57: stmt.close();

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

javax.servlet.ServletException: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 标准表达式中数据类型不匹配。

最好把报错的信息全粘锅来 好像是这的问题 你这个字段应该转化成整型int newsid= Integer.parseInt(request.getParameter("newsid"));

where newsId="+newsid;
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-10
ID是STRING 类型 这个错了 用 int
第2个回答  2010-06-10
newsid定义为long或int类型;
time定义为java.sql.Date
sql改为:
String str="update newsinfo set title='"+title+"',writers='"+writer+"',uptime="+time+",content='"+content+"' where newsId="+newsid;
就应该ok了
相似回答