将数据插入到SQL数据库中并选择PK并将其存储到ASP.NET中的会话中C#

问题描述:

有没有办法将插入数据的PK值选择到SQL DB中,然后将其存储到ASP中的会话中。 NET C#?将数据插入到SQL数据库中并选择PK并将其存储到ASP.NET中的会话中C#

例如:我在数据库中插入了一些东西。在插入过程中,我想将该PK返回给我并存储到会话中。

+3

您是否尝试过什么了吗? –

+1

有太多可能的答案,或者对于这种格式,答案太长。请添加详细信息以缩小答案集或隔离几个段落中可以回答的问题。 – mybirthname

同意这是一个有点模糊的问题,但希望这会有所帮助。

假设这是SQL Server,可以使用scope_identity()。使用存储过程插入该行,然后回读值

例如,假设这台

create table Foo(FooId int identity(1,1) primary key, Field varchar(50)) 

取代当前的INSERT语句创建一个过程

create procedure dbo.usp_FooInsert 
    @fieldValue varchar(50) 
as 

insert into Foo(field) values(@fieldValue) 

select SCOPE_IDENTITY() as InsertedFooId 
go 

使用的程序和读回结果。

+0

谢谢。 SCOPE_IDENTITY()起作用。我最终使用(int)cmd.ExecuteScalar();并返回我与PK – Kluong

如果该列已排序,则可以将其更改为PK。

詹姆斯答案是正确的,但我想补充一点。您可以根据您的要求使用SCOPE_IDENTITY,IDENT_CURRENT@@IDENTITY

SCOPE_IDENTITY返回插入同一范围内的IDENTITY列的最后一个IDENTITY值。

IDENT_CURRENT返回为任何会话和任何范围中的特定表生成的最后一个标识值。

@@IDENTITY返回在当前会话中任何表内所生成的最后一个标识值,在所有范围

+0

的ID请upvote,如果它已经帮助你 –