首页上一页 1 下一页尾页 1 条记录 1/1页
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 中的属性名称,我都是直接复制的,不会有错。
在用户注册的时候,为什么会老是提示注册失败,而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 中的属性名称,我都是直接复制的,不会有错。