孝感市医院:有关ASP修改记录代码的问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/27 22:58:34
这是表文件的代码
<% dim db
Set db=Server.CreateObject("ADODB.Connection")
Db.Open "Dbq=" & Server.MapPath("data\xs.mdb") & ";Driver= {Microsoft Access Driver (*.mdb)} "
dim rec,sql

sql="select*from xsb where no= '" & request.QueryString ("no")&"'"
set rec=db.execute(sql)
if not rec.bof and rec.eof then
session("no")=rec("no")
end if
%>
这是修改的功能代码
<%
Dim db
Set db=Server.CreateObject("ADODB.Connection")
Db.Open "Dbq=" & Server.MapPath("data\xs.mdb") & ";Driver={Microsoft Access Driver (*.mdb)} "

dim alert,over

alert="<Script language='javascript'>alert('发生严重错误!请返回重新填写表单!');history.back(1);</Script>"
over="<script language='javascript'>alert('修改信息已经成功提交!');self.location=('ckgltable.asp');</script>"
dim no,xh,varname,sex,cs,xb,bj,home,dh,email

xh=request.form("xh")
varname=request.form("name")
sex=request.form("sex")
cs=request.form("cs")
xb=request.form("xb")
bj=request.form("bj")
home=request.form("home")
dh=request.form("dh")
email=request.form("email")
strsql="update xsb set xh='"&xh&"', name='"&varname&"',sex='" & sex &"',cs='" &cs &"',xb='" &xb&"',bj='"&bj&"',home='"&home&"',dh='"&dh&"',email='"&email&"'where no=" & request.form("no")
db.execute(strsql)
response.write("<script language='javascript'>alert('已经成功修改!');self.location=('list.asp');</script>")

%>
我的库没有问题没有缺少项目可是为什么老是显示“错误类型:
ADODB.Field (0x80020009)
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。”

我也不明白是为什么.高手指导聗~
不过,你将
if not rec.bof and rec.eof then
session("no")=rec("no")
end if
换为:
if rec.recordcount= 0 then session("no")=rec("no")
应该可以实现.试试看.

有些词是SQL中的保留词,一般不能用在SQL语句中,尤其是插入,更新记录时,否则很容易出错,
本人没有仔细分析你的程序,暂时建议把sql语句中的 name改一下,比如改成user_name这样;还有home,也有嫌疑。
还有,看看数据库中的数据类型是不是和提交数据的类型不符合

sql="select*from xsb where no= '" & request.QueryString ("no")&"'"

sql语句的错误 你的no字段应该是数值型的吧
这样sql="select*from xsb where no= " & request.QueryString ("no")

大哥你的这句
if not rec.bof and rec.eof then 有错误
改为
if not rec.bof and not rec.eof then 就没事了