Как получить последнюю вставленную личность в событии Formview Inserted, используя VB.net - PullRequest
2 голосов
/ 21 сентября 2009

Я использую VB.net (FormView и ObjectDataSource) и Sql Server 2005.

Я хочу получить последнюю вставленную @@ identity в таблицу FormView1_ItemInserted

Protected Sub FormView1_ItemInserted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.FormViewInsertedEventArgs) Handles FormView1.ItemInserted

End Sub

Моя проблема заключается в том, что я хочу перенаправить мой FormView в режим только для чтения после FormView1_ItemInserted , но для этого мне нужно показать вставленную запись в режиме только для чтения, и это возможно только в том случае, если я вставлю свою последнюю вставленную @@ IDENTITY . Пожалуйста, дайте мне знать, какие изменения мне нужно внести в мое приложение, Процедуры и код для достижения этой цели.

Пожалуйста, предложите пример кода! используя VB.net

Спасибо.

С наилучшими пожеланиями, MS

Ответы [ 2 ]

8 голосов
/ 21 сентября 2009

Я решил вышеупомянутую проблему, используя следующую логику

Я изменил процедуру вставки SQL и добавил новый параметр

@OrgID int OUTPUT 

и после команды вставки

Я использовал

SET @OrgID = SCOPE_IDENTITY()

RETURN

Далее в моем Приложении после перенастройки моего ObjectDataSource я получил параметр ниже

    <asp:Parameter ConvertEmptyStringToNull="true" Name="OrgID" Type="Int32" 
        Direction="Output" />

в мой объектный источник данных вставьте параметр

Я пишу код ниже в моем вставленном событии 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

И, таким образом, я получил мой последний вставленный OrgID в сеансе.

Ура!

Пожалуйста, дайте мне знать, если есть какие-либо ошибки при использовании вышеуказанной концепции

1 голос
/ 01 мая 2016

На самом деле самый простой способ сделать это - добавить событие onInserted в ваш источник данных, который в моем случае был LinqDatasource.

protected void lnqInsert_Inserted(object sender, LinqDataSourceStatusEventArgs e)
{
            Session["RecentInsertedClass"] = ((Class)e.Result).ID;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...