如何获取当前ID号并当场能使用?????

ChinaE114 2003-10-16 11:38:42
如下一段代码,我要在确认后添加记录,并要获得当前的ID号,请问应该如何做?

sql="select * from [table] where sid = '"&sid& "'"
rs.open sql,conn,1,3
if not rs.eof then
response.write "<font color=#FF0000>操作中出现错误!</font>"
else
rs.addnew
rs("sid")="A"&rs("ID")
rs("iSort")=iSort
rs.Update
end if
...全文
48 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
401377 2003-10-17
  • 打赏
  • 举报
回复
道理一个样啊!不然用我的方法好的!我不会写代码的!要你自己想!不过原理我想一样!得到的ID你可以写到任何一个段中去!
ChinaE114 2003-10-17
  • 打赏
  • 举报
回复
goldme76(金蜂) :你好,
你回答的并不是我的问题,要在页面上显示出来这个我也知道,我现在是要写入同一条记录的不同列里。呵呵,再帮忙想一下啊:)
ChinaE114 2003-10-17
  • 打赏
  • 举报
回复
flywolfkyo() 你好,我试过你的代码,这其实就是操作2次数据库。
而且,不是我所希望的,他获得的ID不是当前ID,而是上一条ID记录,如果上一条的ID号与当前添加的ID号中间有删除的,那递增的就没有规律了。
怎么办??
401377 2003-10-17
  • 打赏
  • 举报
回复
对啊!哈哈!不过自符串也能自己动加1啊!我怎么没试过!
goldme76 2003-10-17
  • 打赏
  • 举报
回复
在rs.update和rs.close之间写,id=rs("id")这样就可以啊,如果要马上检测是不是得到id的话,在id=rs("id")的下面写
response.write id
response.end
你就会发现,网页就把你刚才的存到库里的记录的ID显示出来了
ChinaE114 2003-10-17
  • 打赏
  • 举报
回复
可能是说的不够清楚,我添加一条记录,缓解SQL Server ,ID是自动递增的,有一个字符类型的sid列,当添加新的一条时,sid的值自动为"A+ID"是字符串
401377 2003-10-17
  • 打赏
  • 举报
回复
什么是当前的ID号!是现有的还是想要建的!?如果是现有的你先把他读出来!如想加的可以ID+1啊:如你最后一个id是:A001那么你可能用函数把字母与数字分开数字+1后合并!不就得到你想要的ID了吗?不过要用到字符转数字的几个转换函数吧!函数这个我不记得了!反正我自己是这样理解的!哈!
flywolfkyo 2003-10-17
  • 打赏
  • 举报
回复
代码改成:
sql="select * from [table] where sid = '"&sid& "'"
set rs =conn.execute(sql)
if rs.eof then
response.write "<font color=#FF0000>操作中出现错误!</font>"
else
set rs1 = server.CreateObject("ADODB.RecordSet")
rs1.open "[table]",conn,3,2
rs1.addnew
rs1("sid")="A"&rs("ID")
rs1("iSort")=iSort
rs1.Update
end if
rs.close
rs1.close
conn.close

如果你的sid字段类型为int的话,那么sql语句应该为
sql ="select * from [table] where sid = "&sid
zxlkxy 2003-10-17
  • 打赏
  • 举报
回复
这个没有试过,感觉比较麻烦,也许你可以先add,然后update!
zorou_fatal 2003-10-17
  • 打赏
  • 举报
回复
如果要使用,也简单
你不是获得了rst("id")吗?
conn.execute "update table set id1="&rst("id")&" where id="&rst("id")
zorou_fatal 2003-10-17
  • 打赏
  • 举报
回复
Set rst=server.createobject("adodb.recordset")
rst.open "select top 1 id from table",conn,2,3
rst.addnew
rst("test")=1
rst.update
rst.movelast
response.write rst("id")
不过这个方法效率低了点。
401377 2003-10-17
  • 打赏
  • 举报
回复
要命!全是夜猫子啊!都不睡啊!注意身体!
其实做几个实验不就得了!哈哈!
∧ ∧︵
ミ^ō^ミ灬) ∧ ∧︵
ミ^ō^ミ灬)
goldme76 2003-10-17
  • 打赏
  • 举报
回复
我不太明白你的意思,你的意思是不是在增加新的记录以后,取得这条记录没有增加之前,数据库的最后一条记录的ID,也就是这条新增记录的上一条的记录的ID是吗?
如果我的理解正确的话,我想,你可以rs.update和rs.close关闭中间加入:rs.MovePrevious
这样记录指针就到了上一条记录啊,再取你要的字段的值, 我不知道你的意思是不是这样
ChinaE114 2003-10-17
  • 打赏
  • 举报
回复
我今天早上起来想到的和你一样,就是先写入一个与此列其他值不同的值(一个特定值,如newnum),接着用update更新先前的值set sid='EEEE"&tempID&"' where id="&tempid

不过还是非常感谢各位的帮忙,特别是 zorou_fatal(Red Star Over China)

28,390

社区成员

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

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