| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 812 人关注过本帖
标题:[求助] 新手求助:记录集不支持更新!!
只看楼主 加入收藏
topsun321
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-4-26
收藏
 问题点数:0 回复次数:4 
[求助] 新手求助:记录集不支持更新!!

错误类型:
ADODB.Recordset (0x800A0CB3)
当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制。
请问具体是什么问题???
怎么解决?

注册模块如下:
<%'-------------------------------------------
'user表 用户表
'-------------------------------------------
'0 ID 自动编号
'1 user 用户名 20l
'2 pass 密码 20
'3 mail 信箱 60
'5 icq ICQ 长整形
'4 oicq OICQ 长整形
'6 address 地址 150
'7 sex 性别 2
'8 birthday 生日 日期
'9 applytime 申请加入时间(默认为date()&time())
'10 homepage 主页 60
'11 fashu 发表文章数目 长整形
'12 bshu 浏览文章数目 长整形
'13 unbshu 发表的文章被人浏览总次数 长整形
'-------------------------------------------
'guest表 留言内容
'ID 自动编号
'guestdata 留言内容,备注型
'user 发表此文章的用户 20
'shuyu 属于那一篇帖子的子帖,默认为0,表示是主帖 整形
'bq 表情 整形
'ndatetime 发表时间 默认为(date()&time())
'looktimes 此文章被浏览次数 长整形
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><head>
<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
<link rel="stylesheet" type="text/css" href="jgwy.css">
</head>
<BODY leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgColor="#f7fdff" vlink=0000ff>
<!-- #include file=change.asp -->
<!-- #include file=head.asp -->

<%
function strLength(str)
dim WINNT_CHINESE
WINNT_CHINESE=(len("例子")=2)
if WINNT_CHINESE then
dim l,t,c
dim i
l=len(str)
t=l
for i=1 to l
c=asc(mid(str,i,1))
if c<0 then c=c+65536
if c>255 then
t=t+1
end if
next
strLength=t
else
strLength=len(str)
end if
end function

dateflag=1
error=""
user=request.form("user")
olduser=user

if user="" then
error=error&"请输入用户名!<br>"
else
user=replace(user,"'","''")
end if

if strLength(olduser)>10 then
error=error&"用户名太长!<br>"
end if

password1=request.form("password1")

if password1="" then
error=error&"请输入你的密码!<br>"
end if

if strLength(password1)>10 then
error=error&"密码太长!<br>"
end if

password2=request.form("password2")

if password2="" then
error=error&"请输入你的验证密码!<br>"
end if

if len(password1)>10 then
error=error&"验证密码太长!<br>"
end if

if password1<>password2 then
error=error&"你的两次密码输入不相同!<br>"
end if

mail=request.form("mail")
if strLength(mail)>50 then
error=error&"你的邮箱长度不能超过50个字符<br>"
end if

homepage=request.form("homepage")
if strLength(homepage)>60 then
error=error&"你的主页长度不能超过60个字符<br>"
end if

icq=request.form("icq")

if icq<>"" then
if IsNumeric(icq)=0 then
error=er0ror&"你的icq号码必须是数字!<br>"
else
if icq>1999999999 then
error=error&"你的icq号码错误!<br>"
end if
end if
end if

oicq=request.form("oicq")

if oicq<>"" then
if IsNumeric(oicq)=0 then
error=error&"你的oicq号码必须是数字!<br>"
else
if oicq>9999999999 then
error=error&"你的oicq号码错误!<br>"
end if
end if
end if

address=request.form("address")
if strLength(address)>150 then
error=error&"你的地址长度不能超过150个字符<br>"
end if

sex=request.form("sex")

if oicq<>"" then
if IsNumeric(oicq)=0 then
error=error&"OICQ号码错误!<br>"
else
if sex<>1 and sex<>2 then
error=error&"你的性别错误!<br>"
end if
end if
end if

byear=request.form("byear")
if byear<>"" and byear<>"19" then
if IsNumeric(byear)=0 then
error=error&"你的出生年错误!<br>"
else
byear=cint(byear)
if (byear>year(date) or byear<1900) then
error=error&"你的出生年错误!1<br>"
end if
end if
else
dateflag=0
end if

bmonth=request.form("bmonth")
if bmonth<>"" then
if IsNumeric(bmonth)=0 then
error=error&"你的出生月份错误!<br>"
else
if bmonth>12 or bmonth<0 then
bmonth=cint(bmonth)
error=error&"你的出生月份错误!<br>"
end if
end if
else
dateflag=0
end if

bday=request.form("bday")
if bday<>"" then
if IsNumeric(bday)=0 then
error=error&"你的出生日期错误!<br>"
else
if bday>31 or bday<0 then
bday=cint(bday)
error=error&"你的出生日期错误!<br>"
end if
end if
else
dateflag=0
end if

select case sex
case 1: sex="男"
case 2: sex="女"
case else:sex="密"
end select

homepage=request.form("homepage")
if error<>"" then
response.write "<table border=0 align=center><tr><td><p><br>"&error&"<a href=apply.asp>返回</a></td></tr></table>"
%>
<hr width=700 align=center size=1 color=<%=tablebgcolorbian%>>
<!-- #include file=foot.asp -->
<%
response.end
end if
birthday=""
if dateflag=1 then birthday=dateserial(byear,bmonth,bday)

Set rs = Server.CreateObject("ADODB.Recordset")
sql="select TOP 1 * from ourusers where username='"&user&"'"
%>
<!-- #include file=database.asp -->
<%
rs.open sql,conn,1,3
if not rs.bof and not rs.eof then
response.write "<table border=0 align=center><tr><td><p><br>用户名"&server.htmlencode(user)&"已被人申请,请用其它用户名!<a href=apply.asp>返回</a></td></tr></table>"
rs.close
set rs=nothing
%>
<hr width=700 align=center size=1 color=<%=tablebgcolorbian%>>
<!-- #include file=foot.asp -->
<%
conn.close
set conn=nothing
response.end
end if
rs.addnew
rs("username")=olduser
rs("pass")=password1
if icq<>"" then rs("icq")=icq
if oicq<>"" then rs("oicq")=oicq
if mail<>"" then rs("mail")=mail
rs("sex")=sex
if birthday<>"" then rs("birthday")=birthday
if homepage<>"" then rs("homepage")=homepage
rs("applytime")=date&" "&time
rs("fen")=0
rs("address")=address
rs.Update
%>
<table border=0 align=center><tr><td>

<p><br><br>登记成功,你的资料如下:<br>
用户名:<%=server.htmlencode(rs("username"))%><br>
密码:<%=rs("pass")%><br>
ICQ号码:<%=rs("icq")%><br>
OICQ号码:<%=rs("oicq")%><br>
E-mail:<%if rs("mail")<>"" then%><a href="mailto:<%=server.htmlencode(rs("mail"))%>"><%=server.htmlencode(rs("mail"))%></a><%end if%><br>
性别:<%=rs("sex")%><br>
生日:<%=rs("birthday")%><br>
登记时间:<%=rs("applytime")%><br>
主页地址:<%if rs("homepage")<>"" then%><a href=<%=server.htmlencode(rs("homepage"))%> target=_blank><%=server.htmlencode(rs("homepage"))%></a><% end if%><br>
你的地址:<% if rs("address")<>"" then%><%=server.htmlencode(rs("address"))%><%end if%><br>
</td></tr></table>
<%rs.close
set rs=nothing
conn.close
set conn=nothing
%>
<!--#include file="gg.asp" -->
<!-- #include file=foot.asp -->
</body></html>

[此贴子已经被作者于2006-5-7 23:45:30编辑过]

搜索更多相关主题的帖子: 记录 
2006-05-07 23:45
hangxj
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2045
专家分:0
注 册:2006-4-10
收藏
得分:0 
以下是引用topsun321在2006-5-7 23:45:00的发言:

错误类型:
ADODB.Recordset (0x800A0CB3)
当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制。
请问具体是什么问题???
怎么解决?

注册模块如下:
<%'-------------------------------------------

if error<>"" then
response.write "<table border=0 align=center><tr><td><p><br>"&error&"<a href=apply.asp>返回</a></td></tr></table>"
%>
<hr width=700 align=center size=1 color=<%=tablebgcolorbian%>>
<!-- #include file=foot.asp -->
<%
response.end
end if
birthday=""
if dateflag=1 then birthday=dateserial(byear,bmonth,bday)

Set rs = Server.CreateObject("ADODB.Recordset")
sql="select TOP 1 * from ourusers where username='"&user&"'"
%>
<!-- #include file=database.asp -->
<%
rs.open sql,conn,1,3
if not rs.bof and not rs.eof then
response.write "<table border=0 align=center><tr><td><p><br>用户名"&server.htmlencode(user)&"已被人申请,请用其它用户名!<a href=apply.asp>返回</a></td></tr></table>"
rs.close
set rs=nothing
%>
<hr width=700 align=center size=1 color=<%=tablebgcolorbian%>>
<!-- #include file=foot.asp -->
<%
conn.close '此处你已经关闭数据库
set conn=nothing
response.end
end if
rs.addnew
rs("username")=olduser
rs("pass")=password1
if icq<>"" then rs("icq")=icq
if oicq<>"" then rs("oicq")=oicq
if mail<>"" then rs("mail")=mail
rs("sex")=sex
if birthday<>"" then rs("birthday")=birthday
if homepage<>"" then rs("homepage")=homepage
rs("applytime")=date&" "&time
rs("fen")=0
rs("address")=address
rs.Update
%>


http://www./
2006-05-08 10:45
topsun321
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-4-26
收藏
得分:0 

<%
conn.close '此处你已经关闭数据库
set conn=nothing
response.end
end if
rs.addnew
rs("username")=olduser
rs("pass")=password1
if icq<>"" then rs("icq")=icq
if oicq<>"" then rs("oicq")=oicq
if mail<>"" then rs("mail")=mail
rs("sex")=sex
if birthday<>"" then rs("birthday")=birthday
if homepage<>"" then rs("homepage")=homepage
rs("applytime")=date&" "&time
rs("fen")=0
rs("address")=address
rs.Update
%>

改为
<%
rs.addnew
rs("username")=olduser
rs("pass")=password1
if icq<>"" then rs("icq")=icq
if oicq<>"" then rs("oicq")=oicq
if mail<>"" then rs("mail")=mail
rs("sex")=sex
if birthday<>"" then rs("birthday")=birthday
if homepage<>"" then rs("homepage")=homepage
rs("applytime")=date&" "&time
rs("fen")=0
rs("address")=address
rs.Update
conn.close
set conn=nothing
response.end
end if

%>

出现的错误如下:

错误类型:
Microsoft VBScript 运行时错误 (0x800A000D)
类型不匹配: 'htmlencode'
/qiye_8/apply2.asp, 第 245 行

2006-05-08 13:36
topsun321
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-4-26
收藏
得分:0 
接着改为:
用户名:<%=rs("username")%><br>
密码:<%=rs("pass")%><br>
ICQ号码:<%=rs("icq")%><br>
OICQ号码:<%=rs("oicq")%><br>

出现错误如下:\
错误类型:
ADODB.Field (0x80020009)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/qiye_8/apply2.asp
2006-05-08 13:40
hangxj
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2045
专家分:0
注 册:2006-4-10
收藏
得分:0 
以下是引用topsun321在2006-5-8 13:40:00的发言:
接着改为:
用户名:<%=rs("username")%><br>
密码:<%=rs("pass")%><br>
ICQ号码:<%=rs("icq")%><br>
OICQ号码:<%=rs("oicq")%><br>

出现错误如下:\
错误类型:
ADODB.Field (0x80020009)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
/qiye_8/apply2.asp

看看刚才提交的数据是否已经存在?

出现这个问题是因为你查询数据的方式是不正确的
你可以试下先把用户提交的数据存在 session中,然后在显示用户所提交的数据时候打印session就可以了

当然你也可以试下

if homepage<>"" then rs("homepage")=homepage
rs("applytime")=date&" "&time
rs("fen")=0
rs("address")=address
rs.Update
rs.close
set rs=nothing
set rs = server.CreateObject("Adodb.recordset")
SqlStr = "Select * from ourusers where username='"&user
Rs.open SqlStr,conn,1,1
%>
<table border=0 align=center><tr><td><p><br><br>登记成功,你的资料如下:<br>
用户名:<%=server.htmlencode(rs("username"))%><br>
密码:<%=rs("pass")%><br>
ICQ号码:<%=rs("icq")%><br>
OICQ号码:<%=rs("oicq")%><br>

还有就是

Set rs = Server.CreateObject("ADODB.Recordset")
sql="select TOP 1 * from ourusers where username='"&user&"'" 为什么这要用TOP 1 ?

[此贴子已经被作者于2006-5-8 14:41:26编辑过]


http://www./
2006-05-08 14:25
快速回复:[求助] 新手求助:记录集不支持更新!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014975 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved