[英]Using scope_identity() with ASP.NET controls
我已经构建了一个表单,用于在数据库的表中输入一些数据,现在我想插入该数据,并获取刚刚添加的记录的ID(即自动编号)。 我的INSERT部分工作正常,并且添加了“ SELECT SCOPE_IDENTITY();” 最后,但是现在我需要检索返回的数字。
目前,所有这些操作都是通过SqlDataSource完成的(“ INSERT”语句被放在一起并由代码隐藏文件中的某些C#触发,该C#从页面上的表单获取数据)。
有没有一种快速的方法来获取该数字并将其放入变量中?
SQLDataSource在内部使用ExecuteNonQuery ,这意味着您不能直接检索该值。 一种解决方法是将输出参数传递到SqlataSource的插入参数列表,然后在该变量中设置SCOPE_IDENTITY返回的值。 可以从Inserted事件中检索变量的值。
那是,
现在,可以在“ Inserted”事件中检索@Identity参数的值,如下所示:
受保护的无效SqlDataSource1_Inserted(对象发送者,SqlDataSourceStatusEventArgs e){
//Read the value of the @Identity OUTPUT parameter int lastID = e.Command.Parameters["@Identity"].Value; ...
}
我相信这段代码可能会有所帮助:
protected void SqlDataSource1_Inserted(object sender, SqlDataSourceStatusEventArgs e)
{
//Read the value of the @Identity OUTPUT parameter
string sID = e.Command.Parameters["@Identity"].Value.ToString();
//Display new ID
Label1.Text = sID;
}
那是来自this blog post
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.