Recuperar el id del ultimo registro insertado

Algo muy comun es querer saber el id del ultimo registro insertado, aca posteo un ejemplo de como hacer eso para una base de datos SQL Server en c#:

SqlConnection conn= new SqlConnection(
ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString
);
string insertStr =
"INSERT INTO [tabla]([texto],[fecha]) VALUES(@texto,getDate())
;SELECT  Scope_Identity();";
SqlCommand cmd=new SqlCommand(insertStr,conn);
cmd.Parameters.Add("@texto", SqlDbType.NVarChar).Value="El texto va aca";
cmd.Connection.Open();
string ret=cmd.ExecuteScalar().ToString();
cmd.Connection.Close();

La parte clave esta en la sentencia Select Scope_Identity() del sql.

2 comentarios en “Recuperar el id del ultimo registro insertado

  1. Roy Sillericpo

    No entiendo muy bien esta linea
    cmd.Parameters.Add(«@texto», SqlDbType.NVarChar).Value=»El texto va aca»;

    Estaba probnado algo asi pero no funciona
    sql = «insert into …»;SELECT SCOPE_IDENTITY()»;

    SqlCommand command = new SqlCommand(sql, conexion);

    SqlDataReader dr = command.ExecuteReader();
    if (dr.HasRows)
    {
    dr.Read();
    lblMensaje.Text = «Operación finalizada correctamente. » + dr.GetInt32(0).ToString();

    En la ultima linea intento recuperar el valor devuelto (identity)

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.