Error al obtener el último id insertado en un tabla Sql Server
-
Monday, May 16, 2011 4:20 PM
Hola,
Tengo el siguiente codigo dentro de un boton que se encarga de guardar los datos de una tabla llamada clientes:
this .Validate();
this.clientesBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.goliherDataSet);
int n = (int)this.clientesTableAdapter.LastInsertId();
En la ultima linea utilizo la consulta LastInsertId que cree en el table adapter con la intencion de que me devuelva el ultimo id insertado en la tabla pero lanza un excepcion del tipo NullReferenceException. Este es el codigo de la consulta:
SELECT SCOPE_IDENTITY() AS Expr1 FROM clientes
Probe tambien solo poniendo SELECT SCOPE_IDENTITY() AS Expr1 pero me lanza el mismo error.
El campo id es de tipo smallint y autoincremental en 1.
Saludos.
All Replies
-
Monday, May 16, 2011 4:46 PMModerator
hola
[ADO.NET] – Parte 6 - Ejemplos simples – Campos Autonumerico (Identity)
no has probado con el
SELECT @@IDENTITY
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
Thursday, May 19, 2011 8:47 AM
¿La excepción NullReferenceException de donde proviene?
¿Puedes mostrarnos el código del método LastInsertId()?
-
Tuesday, May 24, 2011 9:01 AMModerator
:-)
Hola,Primero de todo: Bien por usar SCOPE_IDENTITY en lugar de @@IDENTITY, que no es la mejor opción. Hay mucha gente que los confunde :-)
En segundo lugar, te da error porque no lo estás usando dentro de la misma sesión. en su lugar te recomiendo que uses IDENT_CURRENT, ya que como dice la ayuda 'The last identity value generated can be for any session and any scope'.
Saludos,
No olvides marcar la respuesta como correcta si te ha sido de utilidad :-)
[MS-MVP-MCTS]
Follow me on Facebook or Twitter!
Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis
NUG: http://andorradotnet.com
Web: http://www.ordeeno.com
Geeks: http://geeks.ms/blogs/lfranco
- Proposed As Answer by jtorrecillaMVP, Moderator Tuesday, May 24, 2011 9:09 AM
-
Tuesday, May 24, 2011 9:03 AMModerator
:-)
Hola Leandro,No. No es lo mismo: Mejor no recomiendes el uso de @@IDENTITY. En su lugar -> SCOPE_IDENTITY() o IDENT_CURRENT()
http://msdn.microsoft.com/en-us/library/ms190315.aspx
Saludos,
No olvides marcar la respuesta como correcta si te ha sido de utilidad :-)
[MS-MVP-MCTS]
Follow me on Facebook or Twitter!
Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis
NUG: http://andorradotnet.com
Web: http://www.ordeeno.com
Geeks: http://geeks.ms/blogs/lfranco
-
Saturday, May 05, 2012 2:22 AM
Hola gracias a todos por la ayuda y disculpen la demora en responder, con la prisa de arreglar el código y terminar la aplicación olvidé pasar por aquí a dterminar de darle seguimiento a la pregunta. Les cuento que probé de todas las formas que me aconsejan y me siguió dando el error.
El ultimo id insertado lo queria para pasarlo de un formulario a otro, entonces para solucionarlo lo que hice fue crear en el formulario base una propiedad
public
intIdServicio { get; set; }
y obtuve el id de la siguiente manera
Luego de esto obtenia el valor de la propiedad desde el formulario destino
Saludos.
- Marked As Answer by fernaog Saturday, May 05, 2012 2:23 AM

