我正在使用ASP.NET,C#和SQL Server2012。
我有一个按钮,它将插入到名为images
的表的新行中,并且我正在使用identity
为image_id
生成新的整数id。
我还有其他带有image_id
作为外键的表。
我想要的是将新生成的image_id
的值存储在变量中,并在以后与其他函数一起使用。
我无法使用最后一行的值,因为我会将表格与其他按钮一起使用,如果同时单击它们,则可能会获取其他人的数据。
是否可以将新插入的行的确切ID保存在变量中?
答案 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设置为新值。