jsp项目开发案例全程实录第八章在线考试系统
发表在JavaWeb图书答疑 2012-04-28
是否精华
版块置顶:
您好,仍旧是上次的东西,关于数据库连接的。

在用户注册的时候,为什么会老是提示注册失败,而ret的值无论如何都是0
当我以正确的用户名和密码登录,完全正确,且管理员添加、修改;课程信息添加都可以完全正确运行,所以应该不可能是数据库连接的问题,但问什么会出现这样的情况?

期中,注册的代码如下:
public String insert(StudentForm s) {
        String sql1="SELECT * FROM tb_Student WHERE cardNo='"+s.getCardNo()+"'";
        ResultSet rs = conn.executeQuery(sql1);                         //执行SQL查询语句
        String sql = "";
        String falg = "miss";                                           //用于记录返回信息的变量
        String ID="";
            try {
                if (rs.next()) {                                            //假如存在记录
                    falg="re";                                      //表示考生信息已经注册
                } else {
                    /*****************自动生成准考证号***********************************************/
                    String sql_max="SELECT max(ID) FROM tb_Student";
                    ResultSet rs_max=conn.executeQuery(sql_max);            //查询最大的准考证号
                    java.util.Date date=new java.util.Date();               //实例化java.util.Date()类
                    String newTime=new SimpleDateFormat("yyyyMMdd").format(date);   //格式化当前日期
                    if(rs_max.next()){
                        String max_ID=rs_max.getString(1);              //获取最大的准考证号
                        int newId=Integer.parseInt(max_ID.substring(10,16))+1;//取出最大准考证号中的数字编号+1
                        String no=chStr.formatNO(newId,6);              //将生成的编号格式化为6位
                        ID="CN"+newTime+no;                     //组合完整的准考证号
                    }else{                                          //当第一个考生注册时
                        ID="CN"+newTime+"000001";                   //生成第一个准考证号
                    }
                    /********************************************************************************/
                    sql = "INSERT INTO tb_Student (ID,name,pwd,sex,question,answer,profession,cardNo) values('" +
                                 ID+ "','" +s.getName() +"','"+s.getPwd()+"','"+s.getSex()+"','"+s.getQuestion()+
                                 "','"+s.getAnswer()+"','"+s.getProfession()+"','"+s.getCardNo()+"')";
                    int ret= conn.executeUpdate(sql);                   //保存考生注册信息
                    if(ret==0){
                        falg="miss";                                    //表示考生注册失败
                    }else{
                        falg="恭喜您,注册成功!\\r请记住您的准考证号:"+ID;   //返回生成的准考证号
                    }
                    conn.close();                                           //关闭数据库连接
                }
            } catch (Exception e) {
                falg="miss";
                System.out.println("添加考生信息时的错误信息:"+e.getMessage()); //输出错误提示信息到控制台
            }
        return falg;
    }

另外说明一点:对于数据tb_Student 中的属性名称,我都是直接复制的,不会有错。
分享到:
精彩评论 1
无语_mrkj
学分:3155 LV11
2012-05-04
沙发
您可以在运行时,输出
sql = "INSERT INTO tb_Student (ID,name,pwd,sex,question,answer,profession,cardNo) values('" +
ID+ "','" +s.getName() +"','"+s.getPwd()+"','"+s.getSex()+"','"+s.getQuestion()+
"','"+s.getAnswer()+"','"+s.getProfession()+"','"+s.getCardNo()+"')";
这个sql语句,看这条语句最后的运行结果是什么,是否有空的数据,或者是数据类型与数据表中要求的不一致的情况,另外,数据表中应该有一个注册日期字段,这个字段是否为自动填入日期。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照