Usuário com melhor resposta
Problemas identificando NULL

Pergunta
-
Boa tarde pessoal!!!
Antes de mais nada, desejo a todos um excelente carnaval.
Agora ao problema: Escrevi uma rotina para meu Profile Provider customizado, que usa oracle, e ele possui uma foto do usuário, que resgato com a função abaixo:
public object GetFoto(int uniqueID, bool isAuthenticated){
byte[] Foto = null; OracleConnection conn = new OracleConnection(connectionString); OracleCommand cmd = new OracleCommand("select pu.bl_foto_pu from perfisusuarios pu " + "where pu.n_id_pu = :UniqueID", conn);cmd.Parameters.Add(
"UniqueID", OracleType.Number).Value = uniqueID; if (isAuthenticated){
try{
conn.Open();
Foto = (
byte[])(cmd.ExecuteScalar());}
catch (Exception e){
if (pWriteExceptionsToEventLog){
Utils.WriteToEventLog(e, "GetFoto", eventSource, eventLog, exceptionMessage); throw new ProviderException(exceptionMessage);}
else{
throw e;}
}
finally{
conn.Close();
}
}
return Foto;}
O que acontece, é que ele levanta exceção que não consegue converter System.DBNull em Byte[] quando a tupla da tabela de dados possui valor nulo.
Alguém conhece alguma maneira otimizada que poderia realizar a conversão e, caso venha nulo, ele deixe minha variável array de bytes nula????
Obrigado a todos.