En una aplicación asp.net algunas veces necesitas encontrar el Id del registro recién insertado para utilizarlo en otra operación.

En este ejemplo voy a suponer que tienes un DAL y un BLL, es decir, un archivo con terminación .xsd y un archivo con terminación .vb.

En el “TableAdapter” de tu archivo xsd crea una nueva consulta y pon lo siguiente:

INSERT INTO [MiTabla] ([Campo1], [Campo2])
OUTPUT INSERTED.IdMiTabla
VALUES (@Campo1, @Campo2)

Nota la segunda línea, ésta hace que el valor de salida de tu consulta NO sea el número de registros afectados, sino el valor del Id del registro recién insertado.

Pero para que esto funcione falta una cosa más: en tu archivo xsd selecciona la consulta en tu “TableAdapter” y abre sus propiedades. Ahora establece la propiedad “ExecuteMode” a “Scalar”, así:

scalar

Listo, suponiendo que a tu “TableAdapter” le diste el nombre “InsertarYRegresarElUltimoId”, ahora en tu BLL utiliza un código similar a este:

Dim UltimoId As Integer = Adapter.InsertarYRegresarElUltimoId(Campo1, Campo2)

El valor guardado en la variable “UltimoId” será el correspondiente al Id recién insertado y ahora lo puedes usar para las demás operaciones que vas a hacer.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


siete + 7 =