asp-classic – 如何从此ADODB.Recordset获取插入ID?

我试图避免在我的网络应用程序中使用直接的SQL查询.我环顾四周并得出结论,ADO Recordsets将是最好或最安全的工具.我需要将记录插入数据库表.不幸的是,我不知道如何获得刚刚插入的记录的标识值.这是我现在所拥有的减少:
<%
dim insertID,rs
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "my_table_name",conn,adOpenForwardOnly,adLockOptimistic

rs.AddNew()

Call m_map_values_to_rs(rs)

rs.Update()

insertID = rs("id")

rs.Close()
rs = nothing
%>

我的代码是成功插入记录,但我不能为我的生活弄清楚如何在插入后获取Recordset的id字段更新.如何从此Recordset中获取标识列值?

更新 – 这是关于上面代码解决方案.

我不得不将光标类型更改为adOpenKeyset而不是adOpenForwardOnly.执行此操作后,记录将在插入后使用“自动编号”字段的新值自动更新.然而,这不是你的想法. rs(“id”)的值不会变成整数甚至变量.它变成某种自动化类型,不能作为数字进行评估.出于某种原因,CInt()也不能直接用于该类型.所以你必须做的是将值转换为字符串,然后将其转换为Int.以下是我如何管理:

insertID = CInt( rs("id") & "" )

感谢Dee的回答.它帮助极大.

解决方法

本文解释了使用示例代码获取标识值的方法.如果您在此之后需要更多帮助,请告诉我们

http://databases.aspfaq.com/general/how-do-i-get-the-identity/autonumber-value-for-the-row-i-inserted.html

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...