在ASP.NET中,用什么方法可以取回当前添加的记录的自增ID?

xmllover111 2003-10-15 06:12:28
问题:
有什么方法可以取回当前添加的数据的编号([id])?


数据结构:
[id] [int] IDENTITY (1, 1) NOT NULL ,
[a] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[b] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[c] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[d] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[e] [char] (10) COLLATE Chinese_PRC_CI_AS NULL

程序段:

Dim dbConnection As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection(connectionString)
Dim queryString As String = "SELECT * FROM table1"
Dim dbCommand As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection
Dim Dt As New DataTable
Dim dataAdapter As System.Data.SqlClient.SqlDataAdapter = New System.Data.SqlClient.SqlDataAdapter
dataAdapter.SelectCommand = dbCommand
Dim myDataRowsCommandBuilder As System.Data.SqlClient.SqlCommandBuilder = New System.Data.SqlClient.SqlCommandBuilder(dataAdapter)
dataAdapter.Fill(Dt)

Dim myRow As DataRow = Dt.NewRow
myRow("a") = "A"
myRow("b") = "B"
myRow("C") = "C"
myRow("D") = "D"
myRow("E") = "E"
response.write(myRow("id")) 说明:输出结果为空
Dt.Rows.Add(myRow)
dataAdapter.Update(Dt)
在这里取回的最后记录的[ID]也是为空

...全文
29 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xmllover111 2003-10-15
  • 打赏
  • 举报
回复
但是在程序用怎么实现呢? 用DATASET的时候。
ahui_net 2003-10-15
  • 打赏
  • 举报
回复
注释
在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含此语句产生的最后的标识值。若此语句没有影响任何有标识列的表,则 @@IDENTITY 返回 NULL。若插入了多个行,则会产生多个标识值,@@IDENTITY 返回最后产生的标识值。如果此语句激发一个或多个执行产生标识值的插入操作的触发器,则语句执行后立即调用 @@IDENTITY 将返回由触发器产生的最后的标识值。若 INSERT 或 SELECT INTO 语句失败或大容量复制失败,或事务被回滚,则 @@IDENTITY 值不会还原为以前的设置。

在返回插入到表的 @@IDENTITY 列的最后一个值方面,@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 函数类似。

@@IDENTITY 和 SCOPE_IDENTITY 将返回在当前会话的所有表中生成的最后一个标识值。但是,SCOPE_IDENTITY 只在当前作用域内返回值,而 @@IDENTITY 不限于特定的作用域。

IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回任何会话和任何作用域中为特定表生成的标识值。有关更多信息,请参见 IDENT_CURRENT。

示例
下面的示例向带有标识列的表中插入一行,并用 @@IDENTITY 显示在新行中使用的标识值。

INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ('Accountant',12,125)
SELECT @@IDENTITY AS 'Identity'

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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