C# 将数据插入SQL DB并选择PK并将其存储到ASP.NET C中的会话中#
是否有方法将插入数据的PK值选择到sql DB中,然后将其存储到ASP.NET C#上的会话中C# 将数据插入SQL DB并选择PK并将其存储到ASP.NET C中的会话中#,c#,sql,asp.net,C#,Sql,Asp.net,是否有方法将插入数据的PK值选择到sql DB中,然后将其存储到ASP.NET C#上的会话中 例如:我在数据库中插入了一些内容。在插入过程中,我想将PK返回给我,并将其存储到会话中。如果列已排序、唯一且为int类型,则可以将其更改为PK。同意这是一个模糊的问题,但希望这会有所帮助 假设这是SQL Server,您可以使用scope_identity()。使用存储过程插入行并读回值 e、 g.假设这张桌子 create table Foo(FooId int identity(1,1) prim
例如:我在数据库中插入了一些内容。在插入过程中,我想将PK返回给我,并将其存储到会话中。如果列已排序、唯一且为int类型,则可以将其更改为PK。同意这是一个模糊的问题,但希望这会有所帮助 假设这是SQL Server,您可以使用scope_identity()。使用存储过程插入行并读回值 e、 g.假设这张桌子
create table Foo(FooId int identity(1,1) primary key, Field varchar(50))
创建一个过程
create procedure dbo.usp_FooInsert
@fieldValue varchar(50)
as
insert into Foo(field) values(@fieldValue)
select SCOPE_IDENTITY() as InsertedFooId
go
使用该过程代替当前的insert语句并读回结果。詹姆斯的回答是正确的,但我想补充一点。您可以根据需要使用
SCOPE\u IDENTITY
、IDENT\u CURRENT
或@@IDENTITY
SCOPE\u IDENTITY
返回插入同一作用域中标识列的最后一个标识值
IDENT_CURRENT
返回在任何会话和任何作用域中为特定表生成的最后一个标识值
@@IDENTITY
返回当前会话中所有作用域中为任何表生成的最后一个标识值您尝试了什么吗?可能的答案太多,或者好的答案对于这种格式来说太长。请添加详细信息以缩小答案集或隔离可以在几段中回答的问题。谢谢。作用域_IDENTITY()起作用。我最终使用(int)cmd.ExecuteScalar();如果它对你有帮助的话,它会给我一个PK的ID,请投票