二話不說;
1、先建立個表
CREATE TABLE [dbo].[UserInfo](
[ID] [int] IDENTITY(1,1) NOT NULL,
[UserName] [nchar](10) NULL,
[UserPass] [nchar](10) NULL,
[RegTime] [datetime] NULL,
[Email] [nchar](10) NULL,
CONSTRAINT [PK_UserInfo] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
2、搭建一個dapper環境 就是引用下 dapper.net 就可以了
3、
c#代碼
SqlConnection connection = new SqlConnection( "Data Source=.;Initial Catalog=EFFristModel;uid=sa;password=sql;");
connection.Open();
UserInfo userinfo = new UserInfo();
userinfo.Email = "C#本質論";
string query = "INSERT INTO UserInfo(Email)VALUES(@Email);SELECT @@identity;UPDATE UserInfo SET Email='xx' WHERE Email=@Email";
//對對象進行操作
Response.Write( connection.ExecuteScalar<int>(query, userinfo));
這樣正好可以獲取到 @@identity
注意: 這樣寫是可以的。但是在高並發的環境中 可能得到的@@identity會不是你想要的結果
你在新增,別人也可能也在新增 。你獲取的時候就是 獲取到最后插入的那條記錄的ID.
所以 我們要修改一下
SELECT @@identity
修改為
select @id= SCOPE_IDENTITY();
這樣就保證獲取的是正確的ID.
詳情 請查看下SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY返回插入到標識列中的值,但作用域不同 - zc19820620的專欄 - 博客頻道 - CSDN.NET
這樣就萬事大吉了。
