2013-07-25 2 views
2

Если столбец в DataRow может быть DBNull, является самым коротким способом заменить пустую строку на DBNull?Лучший способ заменить пустую строку для DBNull?

Dim result As String = if(isDBNull(dataRow1("column1")), "", dataRow1("column1")) 
+0

возможно дубликат [Изменить элемент DataRow из DBNull строковое значение] (http://stackoverflow.com/questions/15507675/change-a-datarow-item-from-dbnull-to-a- string-value) –

+0

Это не похоже на действительный C#. Я думаю, вы хотите использовать тернарный оператор «?:» Для этого. – fcuesta

ответ

2

dataRow1("column1") & "" произведет желаемый результат в VB.

+0

Это не будет работать в коде typafe (с 'OPTION STRICT ON') – sloth

0

вы можете создать метод расширения для простоты использования (не проверено):

Imports System.Data 
Imports System.Runtime.CompilerServices 

Module Extensions 
    <Extension()> 
    Public Function GetStringValue(dataRow As DataRow, columnName As String, Optional substituesForDBNull As String = Nothing) As String 
     If IsDBNull(dataRow(columnName)) Then 
      Return substituesForDBNull 
     End If 
     Return CStr(dataRow(columnName)) 
    End Function 
End Module 
1

Просто используйте Field(Of T) methods, который будет преобразовывать DBNull значения в Nothing для вас. Кроме того, они являются типичными.

Dim result = If(dataRow1.Field(Of String)("column1"), String.Empty) 
Смежные вопросы