| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 818 人关注过本帖
标题:一个数据库问题
取消只看楼主 加入收藏
huangcx
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-26
收藏
 问题点数:0 回复次数:4 
一个数据库问题
近来遇到一个很奇怪的问题,就是更新一个教师表的信息的时候,如果只更新前三个字段,就没有出错;如果再加一个字段,就说语法错误.
代码如下:
/////////修改教师信息
public boolean update_teacher(String id1,String id2,String name,String level,int dep_id)
{
conn=c.getConnection();
//String k="1";
boolean flag=false;
String sql="update teacher set teacherID='"+id2+"',name='"+name+"',departID='"+dep_id+"',level='"+level+"' where teacherID=?"; // 加上红色的代码就会出错
try{
preparedstatement = conn.prepareStatement(sql);
preparedstatement.setString(1,id1);
preparedstatement.executeUpdate();
conn.commit();
flag=true;
}catch ( SQLException e )
{
e.printStackTrace();
try
{
//回滚操作.
conn.rollback();
}
catch ( SQLException e1 )
{
e1.printStackTrace();
}
}
//关闭资源.
finally
{
try
{
if(preparedstatement!=null)
{
preparedstatement.close();
}
if(conn!=null)
{
conn.close();
}
}
catch ( SQLException e1 )
{
e1.printStackTrace();
}
}
return flag;
}
异常如下:
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 test.admin.teach_DAO.update_teacher(teach_DAO.java:247)
at test.admin.Modi_teach.doPost(Modi_teach.java:41)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:566)
麻烦各位高手能给个解答,问题究竟出在哪里?
ps:我用的是access数据库,教师表有五个字段,分别是teacherID,name,departID,psw,level

[此贴子已经被作者于2006-12-8 10:40:16编辑过]

搜索更多相关主题的帖子: 数据库 
2006-12-08 10:38
huangcx
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-26
收藏
得分:0 
SQL语句和程序是没什么问题的,格式也是没问题的,但就是再加了一个更新字段就会出现错误,如果把String sql="update teacher set teacherID='"+id2+"',name='"+name+"',departID='"+dep_id+"',level='"+level+"'  where teacherID=?";换成String sql="update teacher set teacherID='"+id2+"',name='"+name+"',departID='"+dep_id+"'  where teacherID=?";就没什么问题,真的很不理解!

[此贴子已经被作者于2006-12-8 13:02:50编辑过]



以我平凡的天分和不平凡的毅力,可完成所有事!
2006-12-08 13:00
huangcx
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-26
收藏
得分:0 
level字段的格式跟前两个字段都是"text"格式,格式应该不存在什么问题,但就是找不出问题出在什么地方

以我平凡的天分和不平凡的毅力,可完成所有事!
2006-12-09 21:26
huangcx
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-26
收藏
得分:0 
以下是引用rainic在2006-12-9 21:55:03的发言:
Level加[]没??

为什么要加[]这个啊?


以我平凡的天分和不平凡的毅力,可完成所有事!
2006-12-10 01:05
huangcx
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-26
收藏
得分:0 
以下是引用rainic在2006-12-10 8:27:58的发言:
因为level在SQL语言里是关键字

就好像"int"不能在JAVA里面作变量一样

确实是这个问题造成的错误,非常感谢楼上的!


以我平凡的天分和不平凡的毅力,可完成所有事!
2006-12-10 13:13
快速回复:一个数据库问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016237 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved