Problemas con SQLCE

02/05/2006 - 20:04 por Diego \(DCD\) | Informe spam
Hola,

estoy intentando esto en una base de datos SQL CE 2005

Command = "SELECT MAX(IdCliente) FROM Cliente"

long? idcliente = Command.ExecuteEscalar();

Pero me salta una exception del tipo InvalidCastingException, alguien me
puede ayudar cómo arreglarlo.

Un saludo y gracias.

Preguntas similare

Leer las respuestas

#1 Lonifasiko
03/05/2006 - 08:18 | Informe spam
Buenas, inténtalo en dos pasos:

object o = command.ExecuteScalar();
long l = (long)o;

ó forzando tú mismo un cast:
long l = (long)command.ExecuteScalar();

A veces, los métodos que devuelven "object" dan problemas al
asignarlos directamente a variables que no son de tipo "object".

Aún así, yo siempre antes comrpobaría que el objeto que me devuelve
ExecuteScalar no es nulo, etc.

SaludoX.
Respuesta Responder a este mensaje
#2 Diego \(DCD\)
03/05/2006 - 08:38 | Informe spam
Hola,

efectivamente me devuelve un nulo, pero entendía que en el 2.0 al poner

long? vbl este me aceptaba los valores nulos y por lo que veo no lo hace.

Un saludo.

"Lonifasiko" escribió en el mensaje
news:
Buenas, inténtalo en dos pasos:

object o = command.ExecuteScalar();
long l = (long)o;

ó forzando tú mismo un cast:
long l = (long)command.ExecuteScalar();

A veces, los métodos que devuelven "object" dan problemas al
asignarlos directamente a variables que no son de tipo "object".

Aún así, yo siempre antes comrpobaría que el objeto que me devuelve
ExecuteScalar no es nulo, etc.

SaludoX.
Respuesta Responder a este mensaje
#3 Unai Zorrilla Castro
03/05/2006 - 09:40 | Informe spam
La idea es buena, la de usar nullable types, pero lo que devuelve es un
System.DBNull.Value no un long nulo por lo que primero deberías capturar que
no sea nulo..

Saludos
Unai Zorrilla Castro
Microsoft MVP Compact Framework
www.canaldotnet.com

"Diego (DCD)" escribió:

Hola,

efectivamente me devuelve un nulo, pero entendía que en el 2.0 al poner

long? vbl este me aceptaba los valores nulos y por lo que veo no lo hace.

Un saludo.

"Lonifasiko" escribió en el mensaje
news:
Buenas, inténtalo en dos pasos:

object o = command.ExecuteScalar();
long l = (long)o;

ó forzando tú mismo un cast:
long l = (long)command.ExecuteScalar();

A veces, los métodos que devuelven "object" dan problemas al
asignarlos directamente a variables que no son de tipo "object".

Aún así, yo siempre antes comrpobaría que el objeto que me devuelve
ExecuteScalar no es nulo, etc.

SaludoX.





Respuesta Responder a este mensaje
#4 Diego \(DCD\)
03/05/2006 - 09:52 | Informe spam
Gracias por la aclaración.

Un saludo.

"Unai Zorrilla Castro"
escribió en el mensaje
news:
La idea es buena, la de usar nullable types, pero lo que devuelve es un
System.DBNull.Value no un long nulo por lo que primero deberías capturar
que
no sea nulo..

Saludos
Unai Zorrilla Castro
Microsoft MVP Compact Framework
www.canaldotnet.com

"Diego (DCD)" escribió:

Hola,

efectivamente me devuelve un nulo, pero entendía que en el 2.0 al poner

long? vbl este me aceptaba los valores nulos y por lo que veo no lo
hace.

Un saludo.

"Lonifasiko" escribió en el mensaje
news:
Buenas, inténtalo en dos pasos:

object o = command.ExecuteScalar();
long l = (long)o;

ó forzando tú mismo un cast:
long l = (long)command.ExecuteScalar();

A veces, los métodos que devuelven "object" dan problemas al
asignarlos directamente a variables que no son de tipo "object".

Aún así, yo siempre antes comrpobaría que el objeto que me devuelve
ExecuteScalar no es nulo, etc.

SaludoX.








email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida