LINQ Substitua dbnull por string em branco
Pergunta
Neste exemplo, um erro é levantado se qualquer um row.FirstName
ou row.LastName
são NULL
.
Como faço para reescrever o Select
Cláusula, para converter um valor dbnull em uma string em branco ""
?
Dim query = From row As myDataSet.myDataRow in myDataSet.Tables("MyData") _
Select row.FirstName, row.LastName
NOTA: Como o conjunto de dados é fortemente tipo. Eu posso usar row.isFirstNameNull()
, mas IIF(row.isFirstNameNull(), "", row.FirstName)
não funcionará, pois todos os parâmetros são referenciados.
Solução
Em sua nota que você mencionou IIf(row.isFirstNameNull(), "", row.FirstName)
substitua isso por If(row.isFirstNameNull(), "", row.FirstName)
que não avaliará a parte falsa se a condição for verdadeira
Outras dicas
Usar Operador ternário da VB "E se" :
Dim query = From row As myDataSet.myDataRow in myDataSet.Tables("MyData") _
Select if(row.isFirstNameNull(), "", _
row.FirstName), if(row.isLastNameNull(), "", row.LastName)
A respeito row.FirstName ?? string.Empty
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow