Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据插入SQL DB并选择PK并将其存储到ASP.NET C中的会话中#_C#_Sql_Asp.net - Fatal编程技术网

C# 将数据插入SQL DB并选择PK并将其存储到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值选择到sql DB中,然后将其存储到ASP.NET C#上的会话中


例如:我在数据库中插入了一些内容。在插入过程中,我想将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,请投票