日期:2014-05-18  浏览次数:20938 次

使用executeUpdate插入成功一条记录,返回值是0?
(1)以下是我写的一个javabean:Sdb.java
里的一个方法,jsp页面通过调用这个方法执行数据库记录的修改
public   int   executeUpdate(String   sql)
{
        int   rowCount=0;
        rs=null;
        try
        {
        conn=   DriverManager.getConnection(url,user,password);
        Statement   stmt=conn.createStatement();
        rowCount=stmt.executeUpdate(sql);
    System.out.println(String.valueOf(rowCount));
        }
        catch(SQLException   ex)
        {
        ex.printStackTrace();
        System.err.println( "Sdb,excuteUpdate: "+ex.getMessage());
        System.out.print( "Sdb,excuteUpdate: "+ex.toString());//输出到客户端
        return   0;
        }
return   1;
}
(2)下面是我用来修改学生成绩的一个简单的jsp页
<jsp:useBean   id= "sdb "   class= "jbean.Sdb "   scope= "request "/>
<jsp:setProperty   name= "sdb "   property= "* "/>
<body>
<form   name= "form1 "   method= "post "   action= " ">
<p> 学号: <input   type= "text "   name= "sno "> </p>
<p> 课程号: <input   type= "text "   name= "cno "> </p>
<p> 成绩: <input   type= "text "   name= "grade "> </p>
<input   type= "submit "   name= "Submit "   value= "修改 ">
<%
String   sql= " ";
String   sno=sdb.toChinese(request.getParameter( "sno "));
String   cno=sdb.toChinese(request.getParameter( "cno "));
String   grade=sdb.toChinese(request.getParameter( "grade "));
if(sno!=null&&cno!=null&&grade!=null)
{         if(!sno.equals( " ")&&!cno.equals( " ")&&!grade.equals( " "))
            {
sql= "update   Reports   set   grade= ' "+grade+ " '   where   Sno= ' "+sno+ " '   and   Cno= ' "+cno+ " ' ";
int   update=sdb.executeUpdate(sql);
if(update==0)
          out.print( " <script> alert( '修改失败! '); </script> ");
              }
  }
%>    
</form>
</body>

我现在遇到的问题是,当我成功插入一条记录时Sdb.java的executUpdate中的System.out.println(String.valueOf(rowCount));显示的却是0,但都有些表的记录的修改时又是1。
而且我在查询分析器里直接输入修改语句显示的也都是“所影响的行数为1行”

这是为什么啊


------解决方案--------------------
肯定是条件不满足,你把显示为0的时候的sql在页面打印出来,然后放到查询分析器里执行看看.

这里只看到更新的操作,没看到插入的操作.
------解决方案--------------------
sdb.toChinese
这个是转换什么的?你把学号,课程号给转了,怎么能找到这样的记录呢,那修改不就是0了吗?
------解决方案--------------------
把代码给改成这样: