帮忙看一下登陆代码
With datareader
Do While .Read = True
If TextBox1.Text = datareader.Item(1) And TextBox2.Text = datareader.Item(2) Then
Response.Redirect("Default2.aspx")
Else
Response.Write("<script language=javascript>alert('你输入的用户名/密码有错,请重新输入!!');history.go(-1)</script>")
Response.End()
End If
Loop
End With
为什么这段代码只能读到数据库中的第一条记录??用数据库中的第二条记录登陆,就会报"你输入的用户名/密码有错,请重新输入!!"??错在那里
问题点数:20、回复次数:8Top
1 楼bhwhy(苏秦)回复于 2006-06-02 14:00:54 得分 5
不能这样做啊.你应当在reader里循环,如果输入的名字和密码都对了,执行下一步,否则就退出.你这样做永远执行的是第一条.
while dr.read
在这判断你的用户名和密码是不是相符,不符退出
end whileTop
2 楼xiaoxuanZhu(我为人人,人人为我)回复于 2006-06-02 14:01:11 得分 5
While datareader .Read = True
If TextBox1.Text = datareader.Item(1) And TextBox2.Text = datareader.Item(2) Then
Response.Redirect("Default2.aspx")
Else
Response.Write("<script language=javascript>alert('你输入的用户名/密码有错,请重新输入!!');history.go(-1)</script>")
Response.End()
End If
end whileTop
3 楼liangchi1018(星辰大海)回复于 2006-06-02 14:05:56 得分 10
第一条记录不满足就跳到错误提示了,当然不走下一条了。
With datareader
dim A as boolean
Do While .Read = True
If TextBox1.Text = datareader.Item(1) And TextBox2.Text = datareader.Item(2) Then
Response.Redirect("Default2.aspx")
A=true
End If
Loop
if not a then
Response.Write("<script language=javascript>alert('你输入的用户名/密码有错,请重新输入!!');history.go(-1)</script>")
Response.End()
end if
End With
没测试,直接打的字,思路没错。修改修改就可以了。Top
4 楼xiaoxuanZhu(我为人人,人人为我)回复于 2006-06-02 14:12:49 得分 0
楼上正解Top
5 楼xiaoxuanZhu(我为人人,人人为我)回复于 2006-06-02 14:13:26 得分 0
光顾抢沙发了,呵呵 不好意思哈Top
6 楼ziyulin0311(echo)回复于 2006-06-02 14:18:15 得分 0
为什么用"我为人人,人人为我的"代码还是不行,是不是跟select语句有关>>
select语句该怎么个写法Top
7 楼bitpolar(独自看天)回复于 2006-06-02 14:20:33 得分 0
其实最好先有个思路
首先这么解决是不是能够准确无误的达到想要的功能
在此基础上这么写代码是不是很好的执行了你的算法
最后检查语法问题Top
8 楼bitpolar(独自看天)回复于 2006-06-02 14:22:53 得分 0
不需要检索所有的用户
select 用户信息 from 用户表
where 用户名=输入的用户名 and 密码=输入的密码
然后判断检索到的记录是不是1行就行
前提用户名不重复Top




