非常奇怪的问题,为什么得不到ID值?大家帮忙看看,在线等!!!解决问题马上结贴

doveph 2005-02-25 05:12:24
在这段程序中添加一条新的记录后,为什么用rs("bookid")得不到这条记录的ID值?错在哪里,而在别一段程序中却能得到ID值?

<!--在下面这段中,行20,fname = rs("bookid")为什么返回的值是空?-->
<!--#include file="../Conn.asp"-->
<%
dim bookid,bookname,bookzz,bookchuban

bookname=trim(request("bookname")) '书名
bookzz=trim(request("bookzz")) '作者
bookchuban=trim(request("bookchuban")) '出版社

set rs=server.CreateObject("adodb.recordset")
rs.Open "select * from GB_Books",conn,1,3
rs.AddNew
rs("bookname")=bookname
rs("bookzz")=bookzz
rs("bookchuban")=bookchuban
rs.Update


dim fname,folder,filepath,sql1,mb_code,fout,fso
'生成HTML文件名,建立文件夹,指定文件路径
fname = rs("bookid")
folder = "/Html/"&date()&"/"
filepath = folder&fname&".html"

'打开模板代码,并将其中特殊代码转变为接受值
sql1="select m_id,m_html from GB_Templet where m_id=1"
set rs1=Server.CreateObject("adodb.recordset")
rs1.open sql1,conn,1,1
mb_code=rs1("m_html")
rs1.close
set rs1=nothing
conn.close
set conn=nothing
mb_code=replace(mb_code,"$bookname$",bookname)
mb_code=replace(mb_code,"$bookzz$",bookzz)
mb_code=replace(mb_code,"$bookchuban$",bookchuban)

'生成HTML页面
Set fso = Server.CreateObject("Scripting.FileSystemObject")
if (fso.FolderExists(Server.MapPath(folder))) then
'判断如果存在就不做处理
else
'判断如果不存在则建立新文件夹
fso.CreateFolder(Server.MapPath(folder))
end if
Set fout = fso.CreateTextFile(Server.MapPath(filepath))
fout.WriteLine mb_code
fout.close


'rs.Close
set rs=nothing
response.Write "<script language=javascript>alert('添加成功!');window.location.reload('addBook.asp')</script>"
response.End
%>

<!--下面这段中却可以能正常返回?奇怪!行20 fname = rs("c_id")-->
<!--#include file="conn.asp" -->

<%'接受传递值
c_title=request.form("c_title")
c_content=request.form("c_content")
%>

<%'将接受值及路径保持至数据库表
sql = "Select * from c_news"
Set rs = Server.CreateObject ("ADODB.Recordset")
rs.Open sql,conn,3,2
rs.addnew
rs("c_title")=c_title
rs("c_content")=c_content
rs.update
%>

<!--#include file="lib.asp" -->
<%'生成HTML文件名,建立文件夹,指定文件路径
fname = rs("c_id")
folder = "Html/"&date()&"/"
filepath = folder&fname&".html"
rs.close
Set rs = Nothing
%>

<%'打开模板代码,并将其中特殊代码转变为接受值
sql1="select m_id,m_html from c_moban where m_id=1"
set rs1=Server.CreateObject("adodb.recordset")
rs1.open sql1,conn,1,1
mb_code=rs1("m_html")
rs1.close
set rs1=nothing
conn.close
set conn=nothing
c_title=htmlencode(c_title)
c_content=htmlencode(c_content)
mb_code=replace(mb_code,"$bookname$",now())
mb_code=replace(mb_code,"$bookzz$",c_title)
mb_code=replace(mb_code,"$isbn$",c_content)
%>

<%'生成HTML页面
Set fso = Server.CreateObject("Scripting.FileSystemObject")
if (fso.FolderExists(Server.MapPath(folder))) then
'判断如果存在就不做处理
else
'判断如果不存在则建立新文件夹
fso.CreateFolder(Server.MapPath(folder))
end if
Set fout = fso.CreateTextFile(Server.MapPath(filepath))
fout.WriteLine mb_code
fout.close
%>

文章添加成功!
...全文
226 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
doveph 2005-02-25
  • 打赏
  • 举报
回复
用了刚才上面的方法为什么总提示错误?
行89的内容为rss.open "select max(bookid)id from GB_Books",1,3


ADODB.Recordset 错误 '800a0bb9'

参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。

/admin/saveaddBook.asp,行 89
doveph 2005-02-25
  • 打赏
  • 举报
回复
看来没有其它办法了!我试试
gu1dai 2005-02-25
  • 打赏
  • 举报
回复
呵呵,你的addnew可能问题在这里

去掉这段看看
ryuginka 2005-02-25
  • 打赏
  • 举报
回复
前面的SQL语句当然有用啊,不就是你要查询的吗?
打出来看看.
rss.open "select top 1 id from gb_books order by id desc",1,3
bananasmiling 2005-02-25
  • 打赏
  • 举报
回复
数据库不一样..查询结果值的方法也会不一样的..
doveph 2005-02-25
  • 打赏
  • 举报
回复
To:bananasmiling(新年快快乐乐)
这样的话确实可以,但又多了一次查询,还是没找到原因?真不明白错在哪了!没找到错误之前也只能这样了!

TO:ryuginka(除了我谁敢用真名:刘银华)
fname = rs("c_id")前面的SQL语句没什么用可以怱略!
ryuginka 2005-02-25
  • 打赏
  • 举报
回复
fname = rs("c_id")前面的SQL语句是什么?
bananasmiling 2005-02-25
  • 打赏
  • 举报
回复
set rs=server.CreateObject("adodb.recordset")
rs.Open "select * from GB_Books",conn,1,3
rs.AddNew
rs("bookname")=bookname
rs("bookzz")=bookzz
rs("bookchuban")=bookchuban
rs.Update

上面的程序执行成功的话..
set rss=server.createobject("adodb.recordset")
rss.open "select max(bookid)id from gb_books",1,3


dim fname,folder,filepath,sql1,mb_code,fout,fso
'生成HTML文件名,建立文件夹,指定文件路径
fname = rss("id")
folder = "/Html/"&date()&"/"
filepath = folder&fname&".html"
doveph 2005-02-25
  • 打赏
  • 举报
回复
不这两段代码不是一样的数据库,上面一段是SQL的,下面那段能正常返回的用的是ACCESS的
doveph 2005-02-25
  • 打赏
  • 举报
回复
to: bananasmiling(新年快快乐乐)
是的,就是自动增长的
Zerolone 2005-02-25
  • 打赏
  • 举报
回复
同意bananasmiling(新年快快乐乐) (
bananasmiling 2005-02-25
  • 打赏
  • 举报
回复
rs("bookid") 你这个BOOKID是不是会自动增长的啊?
doveph 2005-02-25
  • 打赏
  • 举报
回复
不对呀,我已经换成conn,3,2试过了,结果还是一样返回的值是空的!!
baiyunfei 2005-02-25
  • 打赏
  • 举报
回复
参数问题
rs.Open "select * from GB_Books",conn,1,3 改为
rs.Open "select * from GB_Books",conn,3,2

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧