星空网 > 软件开发 > ASP.net

如何在dapper中获取刚插入行的ID

二话不说;

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

这样就万事大吉了。




原标题:如何在dapper中获取刚插入行的ID

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

北京内地香港银行开户指南 :https://www.xlkjsw.com/news/84127.html
探秘三亚申请香港银行开户的独特优势 :https://www.kjdsnews.com/a/1838621.html
探秘三亚申请香港银行开户的独特优势 :https://www.xlkjsw.com/news/84128.html
解析武汉大陆香港银行开户代理,助力海外业务拓展 :https://www.kjdsnews.com/a/1838622.html
解析武汉大陆香港银行开户代理,助力海外业务拓展 :https://www.xlkjsw.com/news/84129.html
全面解析开设NRA账户:指南与注意事项 :https://www.kjdsnews.com/a/1838623.html
咸阳机场到临潼景点 西安咸阳机场到临潼有多远:https://www.vstour.cn/a/411236.html
合肥有什么约会的地方好玩的地方 合肥哪里适合情侣好玩的地方:https://www.vstour.cn/a/411237.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流