【发布时间】:2012-07-10 06:09:06
【问题描述】:
我正在使用 FormView 并使用存储过程将其绑定到 SqlDataSource 以编辑记录。问题是在更新记录后我需要调用另一个函数,我正在使用按钮的onClick 属性。
此函数必须使用在FormView 中编辑的记录的ID 将几条记录插入到另一个表中。我知道如何在同一个存储过程中使用SCOPE_IDENTITY,但这次我需要一些更容易在代码隐藏中完成的逻辑,但我不知道如何获取 ID,所以任何线索都是很棒。
这是按钮:
<asp:Button ID="EditButton" runat="server" CausesValidation="True" CommandName="Update"
Text="Edit" OnClick="setProcessProgress" />
下面是代码的精简版:
protected void setProcessProgress(object sender, EventArgs e)
{
int ID_p;
ID_p = ; //TODO: Here I need to obtain the ID of the last edited record from the EditButton
setProgress(ID_p);
}
存储过程是一个简单的UPDATE 语句。
我正在考虑将参数传递给后面的代码,但不确定如何,可能是这样的OnClick="setProcessProgress(@id)"
【问题讨论】:
-
实际上这与
SCOPE_IDENTITY()无关,从我对你的问题的理解来看。我的意思是,你说你的存储过程是一个简单的UPDATE语句,但是SCOPE_IDENTITY()用于获取最近插入的ID(不是更新) 行。您的程序如何知道要更新哪一行?您不是将 ID 作为参数传递吗?如果没有,请显示您的存储过程的定义。
标签: asp.net sql-server stored-procedures