请问各位大神,asp新增一行数据时,如何将ID值同时写入到另一列?

yinxun 2021-03-03 05:51:44
<%if request("action")=1 then
set rs=server.CreateObject("adodb.recordset")
sql="select * from xiangmu"
rs.open sql,conn,3,2
rs.addnew
rs("name")=trim(request("name"))
rs("jianjie")=trim(request("jianjie"))
rs("username")=trim(request("username"))
rs("usertime")=now()
rs.update
rs.movelast
rs.close



请教各位大神,这是一个新建信息的页面,如上,我需要手动输入name、jianjie、username然后上传到数据库,数据库会自动生产一个ID,比如说是108,如何将这个108,同步写入到同一张表的另一个字段呢?比如是bianhao字段,望各位大神指点

补充一下,数据库是ACCESS
...全文
971 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lz471183090 2021-05-19
  • 打赏
  • 举报
回复
id 不由数据库自动生成,通过程序生成。

Set rs = CreateObject("adodb.recordset")
sql = "SELECT id FROM xiangmu oder by id desc"
rs.CursorLocation = 3
rs.Open sql, conn, 1, 1
id=rs("id")
id=id+1
Set rs1 = CreateObject("adodb.recordset")
sql1 = "SELECT id FROM xiangmu oder by id desc"
rs1.CursorLocation = 3
rs1.Open sql1, conn, 1,3
rs1.AddNew
rs1("name")=trim(request("name"))
rs1("jianjie")=trim(request("jianjie"))
rs1("bianhao")=id
rs1("id")=id
rs1.Update
 
rs1.close
rs.close
hookee 2021-03-10
  • 打赏
  • 举报
回复
先拿到id ,然后再打开个记录集或直接update语句更改
三楼の郎 2021-03-10
  • 打赏
  • 举报
回复
…………
rs.update
response.write(rs("ID"))
rs.close
response.end
先看看update之后能不能通过rs("ID")取值,以及ID和bianhao是不是数值型的,如果是字符型的应该用下面这个
conn.execute "update xiangmu set bianhao='" & replace(rs("ID"),"'","''")  & "' where id='" & replace(rs("ID"),"'","''") & "'"
yinxun 2021-03-10
  • 打赏
  • 举报
回复
报错: Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14' [Microsoft][ODBC Microsoft Access Driver] UPDATE 语句的语法错误。 /xiangmu/new.asp,行 61 61行就是 conn.execute "update xiangmu set bianhao=" & rs("ID") & " where id=" & rs("ID") 麻烦您再帮忙看下哪里有问题?谢谢
yinxun 2021-03-09
  • 打赏
  • 举报
回复
您好 ,首先非常感谢 按您的代码写上去后 系统提示 Microsoft Cursor Engine 错误 '80040e38' 无法为更新定位行。一些值可能已在最后一次读取后已更改。 /xiangmu/new.asp,行 68
Set rs = CreateObject("adodb.recordset")
sql = "SELECT * FROM xiangmu WHERE 1=0"
rs.CursorLocation = 3
rs.Open sql, conn, 1, 3
rs.AddNew

rs("name")=trim(request("name"))
rs("jianjie")=trim(request("jianjie"))


bk = rs.Bookmark

rs.Update


rs.Bookmark = bk
id = rs("id")
 
rs("bianhao") = id
rs.Update
rs.close
您看是否方便再帮我研究一下,谢谢
三楼の郎 2021-03-09
  • 打赏
  • 举报
回复
<%if request("action")=1 then
set rs=server.CreateObject("adodb.recordset")
sql="select * from xiangmu"
rs.open sql,conn,3,2
rs.addnew
rs("name")=trim(request("name"))
rs("jianjie")=trim(request("jianjie"))
rs("username")=trim(request("username"))
rs("usertime")=now()
rs.update
conn.execute "update xiangmu set bianhao=" & rs("ID")  & " where id=" & rs("ID") 
rs.close
Rimifon 2021-03-09
  • 打赏
  • 举报
回复
打开记录集插入和更新数据的方式,ASP是第一个,也是最后一个。这种方式,不适合大数据量+高并发吧?想想数据库10多万条记录,每个人插入和更新都要打开这10多万记录,这酸爽,不敢相信。
hookee 2021-03-09
  • 打赏
  • 举报
回复
Set rs = CreateObject("adodb.recordset")
sql = "SELECT * FROM xiangmu WHERE 1=0"
rs.CursorLocation = 3
rs.Open sql, conn, 1, 3
rs.AddNew
rs("name") = trim(request("name"))
rs("jianjie") = trim(request("jianjie"))
rs("username") = trim(request("username"))
rs("usertime") = Now()
bk = rs.Bookmark
rs.Update
rs.Bookmark = bk
id = rs(id)

rs('xxxx') = id
rs.Update
rs.close

三楼の郎 2021-03-08
  • 打赏
  • 举报
回复
rs.update之后直接通过rs("ID")好像就可以读出来吧,记不太清了, 取出来之后直接conn.execute "update 表 set bianhao=" & rs("ID") & " where id=" & rs("ID") 更新进去 不过为什么要弄重复字段呢?

28,391

社区成员

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

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