我是.net和C#的新手。我正在使用MVC,我已经链接了一个包含2个表的基本数据库。 登录和客户 登录包含(customeriD,loginID,密码) 客户包含(CustomerID,name,last,dob)
CustomerID是两个字段中的主键,并且是登录表中的自动增量值
当我想注册一个新用户时,我想首先填充登录表(其中customerID为autoincrement) 问题是我如何在C#/ Asp.net / mvc中获取登录的下一个自动增量值,以便在填充客户表时使用它?
我正在使用SQL Server 12
答案 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