The PIT
Röster från ITM-koncernen.

Objectdatasource

February 16, 2009 16:52 by Sven Norlin

Efter att ha spenderat en hel del timmar slitandes mitt hår över hur man skall få tillbaka det nya ID'et efter en insert med hjälp av Objectdatasource med underliggande tableadapter tänkte jag kort förklara hur jag lyckades till sist.

Ofta vill man ju ha tillbaka det nya id'et efter man tryckt in data i databasen för att ev koppla annan data till den raden.

Objectdatasource har ju ett event enligt följande

Protected Sub ObjectDataSourceActivity_Inserted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ObjectDataSourceStatusEventArgs) Handles ObjectDataSourceActivity.Inserted

...som man ju tänker skall vara förträfflig att hämta det nya ID'et ifrån med hjälp av e.returnvalue alt. e.OutputParameters("ActivityID")

Tänkte först att jag ju borde få tillbaka det nya  ActivityID eftersom jag ju satt tableadaptern att utföra en refreshdatatable, men icke!

Nyckeln till success var att skapa en helt ny insert på tableadaptern och på denna sätta ExecuteMode=Scalar samt lägga till en outputparameter för det fältet jag ville ha ut, samt lägga till samma outputfält på själva objectdatasourcen. Jag kunde sedan få ut mitt ActivityID med hjälp av e.returnvalue i Objectdatasourcens inserted event.

 

/Sven

image
Tags:
Categories:
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed