Linq ersetzen dbnull durch leere Zeichenfolge
Frage
In diesem Beispiel wird ein Fehler aufgeworfen, wenn beides angesprochen wird row.FirstName
oder row.LastName
sind NULL
.
Wie schreibe ich das um Select
Klausel, um einen DBNull -Wert in eine leere Zeichenfolge umzuwandeln ""
?
Dim query = From row As myDataSet.myDataRow in myDataSet.Tables("MyData") _
Select row.FirstName, row.LastName
Hinweis: Da der Datensatz stark typisch ist. ich kann nutzen row.isFirstNameNull()
, aber IIF(row.isFirstNameNull(), "", row.FirstName)
wird nicht funktionieren, da alle Parameter verwiesen werden.
Lösung
In Ihrer Notiz haben Sie erwähnt IIf(row.isFirstNameNull(), "", row.FirstName)
Ersetzen Sie das durch If(row.isFirstNameNull(), "", row.FirstName)
Dies bewertet den falschen Teil nicht, wenn die Bedingung wahr ist
Andere Tipps
Verwenden Ternärer Operator von VB "wenn" :
Dim query = From row As myDataSet.myDataRow in myDataSet.Tables("MyData") _
Select if(row.isFirstNameNull(), "", _
row.FirstName), if(row.isLastNameNull(), "", row.LastName)
wie wäre es mit row.FirstName ?? string.Empty