我正在使用VB.net (FormView和ObjectDataSource)和Sql Server 2005.
我想在 FormView1_ItemInserted
中的表格中最后插入 @@ identityProtected Sub FormView1_ItemInserted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.FormViewInsertedEventArgs) Handles FormView1.ItemInserted
End Sub
我的问题是我想在 FormView1_ItemInserted 之后将我的FormView重定向到只读模式但是为此我需要以只读模式显示插入的记录,这只有在我上次插入<时才有可能强> @@身份即可。你能告诉我在我的申请,程序和代码中我需要做些什么改变才能实现这一目标。
请用示例代码建议!使用VB.net
感谢。
最诚挚的问候, MS
答案 0 :(得分:8)
我使用以下逻辑
解决了上述问题我更改了我的SQL插入过程并添加了新的参数
@OrgID int OUTPUT
和插入命令后
我用过
SET @OrgID = SCOPE_IDENTITY()
RETURN
在重新配置我的ObjectDataSource之后,在我的应用程序中,我得到了以下参数
<asp:Parameter ConvertEmptyStringToNull="true" Name="OrgID" Type="Int32"
Direction="Output" />
在我的objectdatasource插入参数
我在我的ObjectDataSource插入事件中编写下面的代码。
Protected Sub RAOOrganisationDataSource_Inserted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs) Handles RAOOrganisationDataSource.Inserted
Dim OrgID As Integer = e.OutputParameters("OrgID")
Session("OrgID") = OrgID
End Sub
因此我在Session中获得了最新插入的OrgID。
干杯!
如果在使用上述概念时出现任何错误,请告诉我
答案 1 :(得分:1)
实际上,最简单的方法是将onInserted事件添加到dataSource,在我的例子中是LinqDatasource。
protected void lnqInsert_Inserted(object sender, LinqDataSourceStatusEventArgs e)
{
Session["RecentInsertedClass"] = ((Class)e.Result).ID;
}