【发布时间】:2016-08-23 22:46:43
【问题描述】:
我在一个表中插入一行,然后想要获取该新 ID,以便可以将其添加到另一个变量中,其中存储了电子邮件地址。
var db = Database.Open("myDB");
var insertCommand1 = "INSERT INTO myDB (FirstName, LastName) Values(@0, @1)";
db.Execute(insertCommand1, first, last);
var lastInsertedId = db.QueryValue("SELECT SCOPE_IDENTITY()");
var insertCommand2 = "INSERT INTO email (id_person, email) Values(@0, @1)";
db.Execute(insertCommand2, lastInsertId, email);
其中 id_person 是在我的第一个表中创建的 id。当我运行代码时,我得到 lastInsertedId = {}。为什么它没有为我的第一个表获取主键 int 的 id_person 值而不是 null 的值? --蒂姆
【问题讨论】:
-
什么是
Database?Execute、QueryValue是什么意思?您无法获得正确的值,因为您的语句在不同的范围内执行。 -
而不是
SCOPE_IDENTITY()尝试output inserted.Id(或任何您的 person 表上的 Id 列的名称)。
标签: c# asp.net sql-server asp.net-webpages