我正在使用ASP.NET,C#和SQL Server 2012。

我有一个按钮,它将插入到名为images的表的新行中,并且我正在使用identityimage_id生成新的整数id。

我也有其他使用image_id作为外键的表。

我想要的是将新生成的image_id的值存储在变量中,并在以后与其他函数一起使用。

我无法使用最后一行的值,因为我会将表格与其他按钮一起使用,如果同时单击它们,则可能会获取其他人的数据。

有没有一种方法可以将新插入的行的确切ID保存在变量中?

最佳答案

在您插入新记录时(作为同一批处理的一部分),还调用scope_identity()并将结果返回给程序。它可能看起来像这样:

int newIDValue;
using (var cn = new SqlConnection("connection string here"))
using (var cmd = new SqlCommand("INSERT INTO [table] (...) VALUES (...); SELECT scope_idenity;"))
{
    cn.Open();
    newIDValue = (int)cmd.ExecuteScalar();
}


请注意,SQL命令实际上是如何在同一字符串中包含两个语句。

关于c# - 将ID身份值存储在变量中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53285798/

10-11 08:22