二话不说;

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的更多相关文章

  1. mysql 获取刚插入行id汇总

    mysql 获取刚插入行id汇总 我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的.但 ...

  2. Mysql 中获取刚插入的自增长id的值

    insert into user (username,password) VALUES ('); //获取刚插入的自增长id的值 select last_insert_id(); 在MySQL中,使用 ...

  3. 数据库:mysql 获取刚插入行id[转]

    我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的.但在多线程情况下,就不行了. 下面介 ...

  4. Java中获取刚插入数据库中的数据Id(主键,自动增长)

    public int insert(String cName, String ebrand, String cGender) { String sql = "insert into Clot ...

  5. SQL Server output子句用法 output inserted.id 获取刚插入数据的id

    --插入数据,并返回刚刚插入的数据id INSERT INTO [soloreztest] ([name]) output inserted.id VALUES ('solorez') --执行结果: ...

  6. YII获取刚插入数据的id主键

    单条数据时model->attributes['id']; 循环插入时使用 Yii::app()->db->getLastInsertID() 获取 循环插入时需要每次插入后重置 m ...

  7. yii2框架获取刚插入数据库的id (原创)

    $insert_id = $UserModel->attributes['id'];

  8. 如何在mssql中获取最新自增ID的值

    @@IDENTITY 返回最后一个插入 IDENTITY 的值,这些操作包括:INSERT, SELECT INTO,或者 bulk copy.如果在给没有 IDENTITY 列的其他表插入记录,系统 ...

  9. mysql获取刚插入(添加)记录的自动编号id

    我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的.但在多线程情况下,就不行了. 下面介 ...

随机推荐

  1. RecyclerView基本用法

    1. 在gradle.build的dependencies中添加RecyclerView需要的包 compile 'com.android.support:cardview-v7:23.4.0'com ...

  2. HTTPS证书制作

    openssl 安装可参照之前文章 1.mkdir /etc/ssl/xip.ioopenssl genrsa -out /etc/ssl/xip.io/xip.io.key 1024openssl ...

  3. 关于Eclipse开发插件(三)

    视图之间实现事件监听 两个视图中的组件之间的互动,在开发插件的时候是经常碰到的问题.点击视图1列表的某项时,视图2的文本框显示相应的字符. 第一种主动式: 主动式就是在视图1的代码块中获取对视图2的对 ...

  4. 关于文件的复制(用InputStream和OutputStream)

    作业:将c盘的一个文本文件复制到d盘. 分析:复制原理:读取c盘文件中的数据,将这些数据写入到d盘当中,连读带写. /* * 需求:作业:将c盘的一个文本文件复制到d盘. * 思路: * 1,需要读取 ...

  5. 使用VS建立Web网站及IIS

    一:网站运行的一般原理: 1.所有WEB程序运行都需要一个东西:Web服务器软件. 2. 网站分为动态页面和静态页面 3. web服务器软件的作用:接收请求,响应请求. 被动——无请求则无响应. Ja ...

  6. css-实现元素垂直居中对齐

    css-实现元素/元素内容,垂直居中对齐 一.单行内容的垂直居中(line-height:行高方法) 只考虑单行是最简单的,无论是否给容器固定高度,只要给容器设置 line-height 和 heig ...

  7. Magento中直接使用SQL语句

    原理: magento是基于Zend Framework的,所以底层用的还是zend的zend db 在文件app/code/core/Mage/Catalog/model/Resource/Eav ...

  8. FileReader 的了解

    FileReader的解释 异步的读取存储在用户计算机上的文件 创建一个FileReader 对象 var reader = new FileReader(); FileReader的方法和事件 参数 ...

  9. asp.net服务器页面处理过程

    一.静态页面.动态页面区别 静态页面是服务端直接从硬盘里面读取然后发回去,动态页面就要创建这个页面类的对象,调用对象的方法,方法里面什么就发回什么.浏览器请求asp.net页面实际是请求asp.net ...

  10. ASP实现清除HTML标签,清除&nbsp;空格等编码

    '清除HTML格式 Function RemoveHTML(strText) Dim RegEx Set RegEx = New RegExp RegEx.Global = True '清除HTML标 ...