COMPARAR CAMPO BANCO COM NULL
Nossa pesquisei em tudo que é link do google e não consigo resolver.
Carrego um DataReader sendo que um dos campos (Valor) é Tinyint na tabela e byte na entidade.
Antes de colocar esse valor na propriedade da minha entidade, tenho de testar se ele é nulo para incluir 0 ou o valor se existir, mas dá erro de todas as formas que tentei.
Carrego um DataReader sendo que um dos campos (Valor) é Tinyint na tabela e byte na entidade.
Antes de colocar esse valor na propriedade da minha entidade, tenho de testar se ele é nulo para incluir 0 ou o valor se existir, mas dá erro de todas as formas que tentei.
myAtitude.Valor= Convert.ToByte(dr[[Ô]Valor[Ô]] == DBNull.Value ? 0 : dr[[Ô]Valor[Ô]]);
ou
myAtitude.Valor= Convert.ToByte(dr[[Ô]Valor[Ô]] == null ? 0 : dr[[Ô]Valor[Ô]]);
ou
myAtitude.Valor= Convert.ToByte(Convert.IsDbNull(dr[[Ô]Valor[Ô]]) ? 0 : dr[[Ô]Valor[Ô]]);
Veja bem o que o erro diz, mas é quase certo que você está esquecendo um cast aÃ...
myAtitude.Valor= Convert.ToByte(dr[[Ô]Valor[Ô]] == DBNull.Value ? 0 : Convert.ToXXX(dr[[Ô]Valor[Ô]]));
o Erro é : [Ô]Não é possÃvel converter um objeto do tipo [Ô]System.DBNull em System.String. e ocorre da forma que sugeriu também, pois o erro está na comparação e não na associação.
Bem fiz mais testes e consegui resolver, achei meio esquisito a forma mas é como funcionou.
myAtitude.Valor= Convert.ToByte(dr[[Ô]Valor[Ô]].ToString() == string.Empty ? 0 : dr[[Ô]Valor[Ô]]);
ou seja, inclui na comparação
Bem fiz mais testes e consegui resolver, achei meio esquisito a forma mas é como funcionou.
myAtitude.Valor= Convert.ToByte(dr[[Ô]Valor[Ô]].ToString() == string.Empty ? 0 : dr[[Ô]Valor[Ô]]);
ou seja, inclui na comparação
.ToString() == string.Empty
Tópico encerrado , respostas não são mais permitidas