疑难病杂志版面费:Asp高手进

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/04 07:00:02
真没辙了
看我的源代码吧

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
'验证身份,并且给于不同权限
'连接数据库
set conn=Server.CreateObject("Adodb.Connection")
set rs= Server.CreateObject("Adodb.Recordset")
sql="select a.admin_gongzi,a.admin_zuanye,a.admin_zhanghao,a.admin_mima,a.admin_quanxian,teach.teach_name from admin as a,teach where admin_gongzi=teach_gongzi"
conn.open "provider=microsoft.jet.oledb.4.0;data source="&server.mappath("/guanli_db/guanli.mdb")
rs.open sql,conn,1,1
rs.movefirst
if rs.eof and rs.bof then
%>
没有记录
<%else
do while not rs.eof
if trim(request.form("admin_zhanghao"))=rs("admin_zhanghao") and trim(request.form("admin_mima"))=rs("admin_mima") then
if rs("admin_quanxian")="super" then
session("quanxian")="super"
exit do
elseif rs("admin_quanxian")="normal" then
session("quanxian")="normal"
session("name")=rs("teach_name")
session("gongzi")=rs("admin_gongzi")
exit do
else
session("quanxian")="normal"
session("zuanye")=rs("admin_zuanye")
exit do
end if
end if
rs.movenext
loop
end if
response.write(rs("admin_zhanghao"))
response.write(rs("admin_mima"))
response.write(session("quanxian"))
%>

返回结果
错误类型:
ADODB.Field (0x80020009)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/guanli/admin/useradmin.asp

这可怎么办啊 数据库那头没什么毛病 而且就是为空 我也加判断了阿

高手解答吧
改过了还是不行 我不明白 为什么有的帐号可以 有的不可以 某些帐号和错误帐号密码就会显示
返回结果
错误类型:
ADODB.Field (0x80020009)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
表没有问题 因为有的帐号可以 有的帐号就不行

用session后不报错了 但是权限是normal的时候返回不了信息 大家继续帮忙啊
字数受限 只能把修改的Response 列出来
response.write(session("name"))
response.write(session("quanxian"))
response.write(session("gongzi"))

1,去掉rs.movefirst ,其实去不去无所谓了..
2,主要出错其实是最后的几个response.write,因为当你指针移动到最后一条记录才匹配,之后再movenext,就到了eof了,所以这时候提示出错,解决的办法就是用session,或者几个变量来保存你要输出的几个值,到最后输出session或者变量,不要用rs...

不是 if rs.eof and rs.bof then 出错,而是它上面的一句:
rs.movefirst
把它删掉再试试。

综合以上二位意见。更倾向于第二位【问题出现在第二位,第一位的问题也会存在】。

这种事我经常出
你仔细看一下
库里有没有你想要的记录

if rs.eof and rs.bof then

if rs.eof or rs.bof then


rs.movefirst
前加一句
If rs.eof then Exit do

饿不是高手!