DBNULL
Boa tarde a Todos....
Montei essa seguinte linha..
txtBaseSubs.Text = IIf(Convert.IsDBNull(oDataRow([Ô]BASESUBS[Ô])) = True, [Ô]0[Ô], FormataValor(oDataRow([Ô]BASESUBS[Ô]), 1))
Mas da Erro conforme o Anexo...
O Campo BASESUBS é do tipo MONEY...
Montei essa seguinte linha..
txtBaseSubs.Text = IIf(Convert.IsDBNull(oDataRow([Ô]BASESUBS[Ô])) = True, [Ô]0[Ô], FormataValor(oDataRow([Ô]BASESUBS[Ô]), 1))
Mas da Erro conforme o Anexo...
O Campo BASESUBS é do tipo MONEY...
Isso ocorre porque se o valor for nulo ele verifica a sua função FormataValor.
Para corrigir você pode colocar um if dentro da sua função caso o parâmetro retorne nullo, converta para [Ô]0[Ô]. Neste caso nem precisa do iif, pois vai retornar o [Ô]0[Ô] formatado.
Outra solução:
Para corrigir você pode colocar um if dentro da sua função caso o parâmetro retorne nullo, converta para [Ô]0[Ô]. Neste caso nem precisa do iif, pois vai retornar o [Ô]0[Ô] formatado.
Outra solução:
If oDataRow([Ô]BASESUBS[Ô]) = [Ô][Ô] Then oDataRow([Ô]BASESUBS[Ô]) = [Ô]0[Ô]
txtBaseSubs.Text = FormataValor(oDataRow([Ô]BASESUBS[Ô]), 1)
ROBIU.....isso que eu percebi aqui na função FormataValor....
Vou ver certo aqui.....
Vou ver certo aqui.....
1 - Para leitura de dados use DataReader e não DataTable
2 - Crie métodos de extensão para facilitar a leitura e dentro desses métodos faça os tratamentos necessários de null; o uso de ternários, apesar de não estar incorreto, se torna trabalhoso e deixa o código pouco legÃvel
3 - Use OOP e faça o preenchimento de valores(usando os métodos de extensão) em classes entidade, isso torna seu código muito mais legÃvel ao ponto de mesmo um leigo poder entender
4 - Se você usa formatação de diferentes tipos, evite o uso do [Ô]Mask[Ô], prefira extender a classe do textbox, passando a formatação desejada e um método de extensão que faça a formatação para você
2 - Crie métodos de extensão para facilitar a leitura e dentro desses métodos faça os tratamentos necessários de null; o uso de ternários, apesar de não estar incorreto, se torna trabalhoso e deixa o código pouco legÃvel
3 - Use OOP e faça o preenchimento de valores(usando os métodos de extensão) em classes entidade, isso torna seu código muito mais legÃvel ao ponto de mesmo um leigo poder entender
4 - Se você usa formatação de diferentes tipos, evite o uso do [Ô]Mask[Ô], prefira extender a classe do textbox, passando a formatação desejada e um método de extensão que faça a formatação para você
Na verdade é só inverter o Parametro assim
txtBaseSubs.Text = FormataValor(IIf(Convert.IsDBNull(oDataRow([Ô]BASESUBS[Ô])) = True, [Ô]0[Ô], oDataRow([Ô]BASESUBS[Ô])), 1)
dai funciona....
txtBaseSubs.Text = FormataValor(IIf(Convert.IsDBNull(oDataRow([Ô]BASESUBS[Ô])) = True, [Ô]0[Ô], oDataRow([Ô]BASESUBS[Ô])), 1)
dai funciona....
Tópico encerrado , respostas não são mais permitidas