Execute()方法应该是返回受影响的行数,想知道怎么获取自增的Id值。
如能给出简单示例,感激不尽。
用query查询方式.或者那个返回第一行第一列的方法.
在sql中用inserted.id输出
在SQL,Insert语句后,跟上返回自增ID的语句。
有三种写法,这是其中两种:
Execute方式:
var sql = "INSERT INTO [MesTest] ([Msg]) VALUES('ss');SELECT @id=SCOPE_IDENTITY()"; using (var db = Database.DbService) { var p = new DynamicParameters(); p.Add("@ID", dbType: DbType.Int32, direction: ParameterDirection.Output); var i = db.Execute(sql,p); var i1 = p.Get<int>("@ID"); Assert.Inconclusive(i1.ToString()); }
Query方式
var sql = @"INSERT INTO [MyTable] ([Stuff]) VALUES (@Stuff);"; sql += "SELECT CAST(SCOPE_IDENTITY() as int)"; var mytable = new MyTable(); mytable.Stuff = "test"; var id = connection.Query<int>(sql, mytable).FirstOrDefault();
ExecuteScalar方式,就不再叙了。
以上的SQL语句,仅作参考,在不同数据库下,SQL语法略有差异,获取自增ID方法也各自不同。
参考:https://www.cnblogs.com/davidwang456/p/4836327.html