Problema con ExecuteReader

24/10/2005 - 19:08 por Diego \(DCD\) | Informe spam
Hola,

tengo un select que me devuelve varias columnas, un de esas columnas es
un subselect que me suma un importe sería algo así

select columna1,columna2, columna3, (SELECT sum(dato) from tabla2 where
tabla1.clave = tabla2.clave)
from tabla1

pues bién hay casos en el que el subselect me devuelve un null, y cuando
intento hacer algo así en C#

SqlDataReader dr = sqlCommand.ExecuteReader();
decimal dcDato = dr.GetDecimal(4);

Me da un error de que es nulo, pero no sé cómo detectar esto antes de la
asignación, he probado con

if (dr.GetDecimal(4) != null).
o
if (dr.GetDecimal(4) != System.DBNull.Value)

pero nada.

Gracias por vuestra ayuda. Un saludo.
 

Leer las respuestas

#1 Diego \(DCD\)
25/10/2005 - 08:55 | Informe spam
Gracias a ambos por vuestras soluciones.


"Diego (DCD)" escribió en el mensaje
news:
Hola,

tengo un select que me devuelve varias columnas, un de esas columnas


es
un subselect que me suma un importe sería algo así

select columna1,columna2, columna3, (SELECT sum(dato) from tabla2


where
tabla1.clave = tabla2.clave)
from tabla1

pues bién hay casos en el que el subselect me devuelve un null, y cuando
intento hacer algo así en C#

SqlDataReader dr = sqlCommand.ExecuteReader();
decimal dcDato = dr.GetDecimal(4);

Me da un error de que es nulo, pero no sé cómo detectar esto antes de


la
asignación, he probado con

if (dr.GetDecimal(4) != null).
o
if (dr.GetDecimal(4) != System.DBNull.Value)

pero nada.

Gracias por vuestra ayuda. Un saludo.


Preguntas similares