LINQ Sostituire DBNull con stringa vuota
Domanda
In questo esempio, viene generato un errore se uno o row.FirstName
row.LastName
sono NULL
.
Come faccio a riscrivere la clausola Select
, per convertire un valore DBNull a un ""
stringa vuota?
Dim query = From row As myDataSet.myDataRow in myDataSet.Tables("MyData") _
Select row.FirstName, row.LastName
NOTA: Dal momento che il DataSet è strongly-typed. Posso usare row.isFirstNameNull()
, ma IIF(row.isFirstNameNull(), "", row.FirstName)
non funzionerà in quanto tutti i parametri si riferiscono.
Soluzione
Nella tua nota che hai citato IIf(row.isFirstNameNull(), "", row.FirstName)
sostituire quello con If(row.isFirstNameNull(), "", row.FirstName)
che non valuteranno la parte false se la condizione è vera
Altri suggerimenti
operatore ternario di VB "se":
Dim query = From row As myDataSet.myDataRow in myDataSet.Tables("MyData") _
Select if(row.isFirstNameNull(), "", _
row.FirstName), if(row.isLastNameNull(), "", row.LastName)
che dire row.FirstName ?? string.Empty
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow