|
主题: 数据库问题
|
csdjyzd
职务:普通成员
等级:1
金币:0.0
发贴:35
|
#12004/10/30 17:58:11
<%@ Language=Jscript %> <% var conn = Server.CreateObject("ADODB.Connection"); conn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("test.mdb")); rs = Server.CreateObject("ADODB.Recordset"); sql = "Select * from studentinfo where 学号="+Request.Form("x2"); rs.Open(sql,conn,3); ts =Server.CreateObject("ADODB.Recordset"); str="Select * from grade where 学号="+Request.Form("x2")+ " AND 课程名='"+Request.Form("ch")+"'"; ts.Open(str,conn,3);
if (rs("姓名")==Request.Form("x1")) if (ts("成绩")==-1) Response.Redirect("test.asp?xuehao="+Request.Form("x2")); else Response.Redirect("error.asp?id=2"); else Response.Redirect("error.asp?id=1"); %>
这个是我写的用户登陆的判断页面,x1,x2分别是前一页面姓名和学号文本框名 ch是一个下拉框的名。。 运行时,不管输什么姓名学号是只会跳到error.asp页面且id是1。。。。 我第一次试着用JSP写不知道是哪里有错误~~
另谁知道JSP有关数据库方面的介绍比较详细的网站吗?
有没有网页设计调试用的软件,可以跟踪调试的?
编辑历史:[此帖最近一次被 csdjyzd 编辑过(编辑时间:2004-10-30 18:06:27)]
|
缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
|
#22004/10/30 18:30:13
检查为什么rs("姓名")!=Request.Form("x1"))
另外,这个是js写的asp,不是jsp
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#32004/10/30 20:00:17
if (rs("姓名")==Request.Form("x1")) { if (ts("成绩")==-1) { Response.Redirect("test.asp?xuehao="+Request.Form("x2")); } else { Response.Redirect("error.asp?id=2"); } else { Response.Redirect("error.asp?id=1"); }
你的判断嵌套错误,没有括号的只能跟一句。建议全部使用括号。
非常大鱼
|
csdjyzd
职务:普通成员
等级:1
金币:0.0
发贴:35
|
#42004/10/30 20:11:10
这个登陆页是用学号和姓名登陆的~~ 前面以学号为条件查询数据库 后面与姓名比较的来判断是否正确
还有,我把括号+起也不行也。。 蓝鲸大哥你写的少个},我把他+在了最后一个else的前面~~~ 可还是一样的结果。。。。。。
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#52004/10/30 20:21:20
用Response.Write输出一下这个Request.Form("x1")值,并输出一下ts("成绩")值作验证,就知道错在那一步了。
其实你的SQL可以不必这样,可以把两个表内连起来查询,SQL语句如 SELECT S.学生号, S.姓名, G.成绩 FROM StudentInfo S INNER JOIN Grade G ON S.学生号 = G.学生号 AND G.课程 = '语文'
去参考一下SQL查询用法,你的程序效率为成倍提高。
编辑历史:[此帖最近一次被 蓝鲸 编辑过(编辑时间:2004-10-30 20:40:29)]
非常大鱼
|
csdjyzd
职务:普通成员
等级:1
金币:0.0
发贴:35
|
#62004/10/30 21:53:42
奇怪。。。 我试了用Response.Write输出各值 全都正确。。。。 那肯定是判断语句的问题。。。 可是,判断语句有错吗? GOD。。疯了。。。 为什么总是只执行跳到error.asp页,id=1.... 无语了~~
|
缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
|
#72004/10/30 22:07:12
response.write(rs("姓名").length+"<br>"+Request.Form("x1").length) 看看是不是有无谓的其他空格之类的字符
|
csdjyzd
职务:普通成员
等级:1
金币:0.0
发贴:35
|
#82004/10/30 22:14:26
试过了。。结果是 undefined undefined
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#92004/10/30 22:38:14
首先请先更正你的if写法,一定用括号,可能这个嵌套是错误的,有清晰的写法,验正错误方便。 另请确定是Request.Form吗,从表单提交过来的?? 请把Response.Redirect暂改为Response.Wirite "Error In No.1",是否有其它地方也套用跳转。 书写一定清晰,否则难查错。
非常大鱼
|
csdjyzd
职务:普通成员
等级:1
金币:0.0
发贴:35
|
#102004/10/31 11:49:22
Response.Write (rs("姓名")); Response.Write (ts("成绩")); Response.Write (Request.Form("x1")); 这3个语句结果.. 欧丽-1欧丽 但是,我把其他的if都去了只留下 if (rs("姓名")!=Request.Form("x1")) { Response.Write("学号姓名错误!");} 依然显示学号姓名错误.............. 难道这个判断语句有问题............. 另问逻辑与是&还是&&
可明明显示的rs("姓名")和Request.Form("x1")都是一样的...为什么会不相等???? 真的是要疯了.............. 都没信心继续做下去了...................
编辑历史:[此帖最近一次被 csdjyzd 编辑过(编辑时间:2004-10-31 12:29:42)]
|
缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
|
#112004/10/31 12:33:34
Response.Write(rs("姓名").length+"<br>"+Request.Form("x1").length)
上面写错了,js区分大小写
|
csdjyzd
职务:普通成员
等级:1
金币:0.0
发贴:35
|
#122004/10/31 12:46:44
我区分了的... 一样是undefined undefined 难道我系统有问题.....................................
|
csdjyzd
职务:普通成员
等级:1
金币:0.0
发贴:35
|
#132004/10/31 14:15:18
555555555555 没有人知道为什么吗?????? 这下挂了~~
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#142004/10/31 19:39:38
我不知用js怎样写ASP,把两个值都强制转换成string类型,再用函数把空格去掉。 用VB写呢,现在基本都用VB写ASP,js版的教材都少。
非常大鱼
|
缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
|
#152004/10/31 20:36:21
有on error resume next么?
|