将ID身份值存储在变量中

时间:2018-11-13 16:47:49

标签: c# asp.net sql-server identity

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

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

我还有其他带有image_id作为外键的表。

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

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

是否可以将新插入的行的确切ID保存在变量中?

2 个答案:

答案 0 :(得分:3)

在插入新记录时,作为同一批次的一部分,还调用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命令实际上是如何在同一字符串中包含两个语句。

答案 1 :(得分:0)

建立一个类并将其存储在该类中。

 public class yourClass
 {
    private int image_id;
    public int Image_id
    {
        get
        {
            return image_id;
        }
        set
        {
            image_id= value;
        }
    }
 }

在您生成image_id的代码中,将yourClass.Image_id设置为新值。