C#如何获得下一个自动增量值并使用

时间:2013-09-13 08:29:11

标签: sql-server asp.net-mvc

我是.net和C#的新手。我正在使用MVC,我已经链接了一个包含2个表的基本数据库。 登录和客户 登录包含(customeriD,loginID,密码) 客户包含(CustomerID,name,last,dob)

CustomerID是两个字段中的主键,并且是登录表中的自动增量值

当我想注册一个新用户时,我想首先填充登录表(其中customerID为autoincrement) 问题是我如何在C#/ Asp.net / mvc中获取登录的下一个自动增量值,以便在填充客户表时使用它?

我正在使用SQL Server 12

5 个答案:

答案 0 :(得分:1)

如果您使用Stored Procedure来处理此逻辑,那么您可以通过从新插入的记录中获取Scope_Identity值,然后使用此值插入到一个事务中来执行此操作下一张桌子。

Scope_Identity绝对是这里的方式,您将获得SP呼叫范围内的最新ID。

如果这是Entity Framework的两个步骤,请查看How can I get Id of inserted entity in Entity framework?

答案 1 :(得分:0)

select isnull(MAX(CustomerID),0)+1 from Customer

答案 2 :(得分:0)

尝试此SQL STMT

SQL Q SHOW TABLE STATUS LIKE 'Login_Table'

寻找 Auto_increment 或其他详细信息的价值

答案 3 :(得分:0)

您可以在C#代码中使用Guid并将其设置为CustomerID(Guid custID = new Guid();)。 Guid是SQL Server中的uniqueidentifier类型。

您使用的是实体框架吗?这是从.net应用程序访问SQL数据库的好方法。

答案 4 :(得分:0)

如果您使用的是SQL查询:

让你的inertIntoLoginTable函数返回一个SCOPE_IDENTITY的整数  或@@Identity

如果您正在使用类似于Entity Framework的ORM,则在数据库中插入后,id将被设置为该对象:

调用Login.loginID

后,

dbContext.SaveChanges();将是插入的最后一个ID