注册 登录
编程论坛 ASP技术论坛

[求助] ADODB.Recordset '800a0cc1'

kaijie 发布于 2007-10-28 23:14, 1457 次点击

在调试ASP网页出现错误
代码为 "ADODB.Recordset '800a0cc1'
在对应所需名称或序数的集合中,未找到项目。"

是怎么回事呢,哪位高手给我解答下

14 回复
#2
hmhz2007-10-29 00:43

代码都贴出来

#3
madpbpl2007-10-29 10:22
检查是否拼写错误,检查数据库是否有这个字段。
#4
kaijie2007-10-29 19:45
<%@language=vbscript%>
<%
dim conn
set conn = Server.CreateObject("ADODB.Connection")
conn.ConnectionString = "DSN=localserver;uid=sa;pwd=;database=database"
conn.open
Set cmd= Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
UserName = Request.Form("UserName")
PassWord = Request.Form("PassWord")
If UserName = Empty or PassWord = Empty Then
Response.Write"用户名或密码不能为空!!"
Response.End
Else
sql="select * from xs "
Set rs = Server.CreateObject("ADODB.recordset")
rs.open sql,conn
if rs("UserName")=ZH and rs("PassWord")=MM then
response.redirect "index.asp"
else
response.write"用户名或密码输入错误,请确认!!"
End If
End If
rs.Close
Set rs = Nothing
%>
</script>
帮忙解答下拉
#5
kaijie2007-10-29 19:47
<%
dim conn
set conn = Server.CreateObject("ADODB.Connection")
conn.ConnectionString = "DSN=localserver;uid=sa;pwd=;database=database"
conn.open
Set cmd= Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
UserName = Request.Form("UserName")
PassWord = Request.Form("PassWord")
If UserName = Empty or PassWord = Empty Then
Response.Write"用户名或密码不能为空!!"
Response.End
Else
sql="select * from xs "
Set rs = Server.CreateObject("ADODB.recordset")
rs.open sql,conn
if rs("UserName")=ZH and rs("PassWord")=MM then
response.redirect "index.asp"
else
response.write"用户名或密码输入错误,请确认!!"
End If
End If
rs.Close
Set rs = Nothing
%>
#6
tianyu1232007-10-29 19:56

if rs("UserName")=ZH and rs("PassWord")=MM then

这是什么呀,ZH MM是变量还是字符串啊?

你这是做用户登陆吗?怎么获取到的 UserName 与 PassWord 却没有用到啊?

像你那样写的登陆代码也不行啊!
#7
kaijie2007-10-29 20:40

ZH是数据库表的用户名,MM是密码
这样不就是当获取的用户名和密码跟数据库相同是才可以登陆吗,而且是对应用户名和密码

#8
tianyu1232007-10-29 20:48

ZH,MM是数据表中的字段,还是字段中的值?
#9
hmhz2007-10-29 22:09

改成这样就行了

[CODE]sql="select * from xs where UserName='"&UserName&"' and PassWord='"&PassWord&"'"
Set rs = Server.CreateObject("ADODB.recordset")
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.redirect "index.asp"
else
response.write"用户名或密码输入错误,请确认!!"
end If[/CODE]
#10
madpbpl2007-10-29 22:31
可能楼主只设了一个用户
用户句是zz 密码是mm,不知道我猜的对不对
写成这样试试
if rs("UserName")="ZH" and rs("PassWord")="MM" then
但是根据一楼的错误原因:在对应所需名称或序数的集合中,未找到项目
这个应该不是主要出错的原因,检查数据库,是否单词拼写错误。
#11
kaijie2007-10-29 22:36
字段啊
#12
kaijie2007-10-29 22:48
我都试过了,如果象"我不要做斑竹"那样改,就不能检验用户.密码的正确,随便填都可以登陆


sql="select * from xs "
Set rs = Server.CreateObject("ADODB.recordset")
rs.open sql,conn,1,1
if "UserName"=ZH and "PassWord"=MM then
response.redirect "index.asp"
else
response.write"用户名或密码输入错误,请确认!!"

这样就怎么登陆不了,都运行下句

楼上的 ZH,MM 是字段名,
#13
hmhz2007-10-30 01:40

谁说我那样写不能检查用户名和密码的正确和错误了?

我这个就是直接检查用户名和密码的正确和错误的
如果 ZH 和 MM 字段是文本类型的就使用 ZH='"&UserName&"' and MM='"&PassWord&"'
如果 ZH 和 MM 字段是数字类型的就使用 ZH="&UserName&" and MM="&PassWord&"
[CODE]
<%
dim conn
set conn=server.createobject("ADODB.CONNECTION")
conn.open "provider=sqloledb;server=(local);database=database;uid=sa;pwd=;"

UserName = Request.Form("UserName")
PassWord = Request.Form("PassWord")
If UserName = "" or PassWord = "" Then
Response.Write"用户名或密码不能为空!!"
Response.End
end if
sql="select * from xs where ZH='"&UserName&"' and MM='"&PassWord&"'"
Set rs = Server.CreateObject("ADODB.recordset")
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.redirect "index.asp"
else
response.write"用户名或密码输入错误,请确认!!"
end If
rs.Close
Set rs = Nothing
%>
[/CODE]

[此贴子已经被作者于2007-10-30 1:44:45编辑过]

#14
yms1232007-10-30 10:20
出现那种错误一般是字段在数据库中不存在,这个错误既可能出现在Rs里也可能出现在sql查询中。
#15
kaijie2007-10-30 12:53
哦,终于做出来了,感谢你们的帮忙,原来我一直忽略了字段的类型,
第一次编程,挺郁闷的但还是有点自豪......
1