LINQ Заменить DBNull пустой строкой - PullRequest
4 голосов
/ 11 марта 2010

В этом примере возникает ошибка, если row.FirstName или row.LastName равны NULL.

Как переписать предложение Select, чтобы преобразовать значение DBNull в пустую строку ""?

Dim query = From row As myDataSet.myDataRow in myDataSet.Tables("MyData") _
            Select row.FirstName, row.LastName

ПРИМЕЧАНИЕ. Поскольку DataSet строго типизирован. Я могу использовать row.isFirstNameNull(), но IIF(row.isFirstNameNull(), "", row.FirstName) не будет работать, так как все параметры указаны.

Ответы [ 3 ]

5 голосов
/ 11 марта 2010

В вашей заметке вы упомянули IIf(row.isFirstNameNull(), "", row.FirstName) замените ее на If(row.isFirstNameNull(), "", row.FirstName), которая не будет оценивать ложную часть, если условие истинно

1 голос
/ 11 марта 2010

Используйте троичный оператор VB"if":

Dim query = From row As myDataSet.myDataRow in myDataSet.Tables("MyData") _
    Select if(row.isFirstNameNull(), "", _
        row.FirstName), if(row.isLastNameNull(), "", row.LastName)
0 голосов
/ 11 марта 2010

а как же row.FirstName ?? string.Empty

...