Вопрос

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

Как мне переписать Select пункт, чтобы преобразовать значение dbnull в пустую строку ""?

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

Примечание. Поскольку набор данных сильно используется. я могу использовать row.isFirstNameNull(), но IIF(row.isFirstNameNull(), "", row.FirstName) не будет работать, поскольку на все параметры ссылаются.

Это было полезно?

Решение

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

Другие советы

Использовать Тернарный оператор VB "если" :

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

как насчет row.FirstName ?? string.Empty

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top