Если столбец в DataRow
может быть DBNull
, является самым коротким способом заменить пустую строку на DBNull
?Лучший способ заменить пустую строку для DBNull?
Dim result As String = if(isDBNull(dataRow1("column1")), "", dataRow1("column1"))
Если столбец в DataRow
может быть DBNull
, является самым коротким способом заменить пустую строку на DBNull
?Лучший способ заменить пустую строку для DBNull?
Dim result As String = if(isDBNull(dataRow1("column1")), "", dataRow1("column1"))
dataRow1("column1") & ""
произведет желаемый результат в VB.
Это не будет работать в коде typafe (с 'OPTION STRICT ON') – sloth
вы можете создать метод расширения для простоты использования (не проверено):
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
Просто используйте Field(Of T)
methods, который будет преобразовывать DBNull
значения в Nothing
для вас. Кроме того, они являются типичными.
Dim result = If(dataRow1.Field(Of String)("column1"), String.Empty)
возможно дубликат [Изменить элемент DataRow из DBNull строковое значение] (http://stackoverflow.com/questions/15507675/change-a-datarow-item-from-dbnull-to-a- string-value) –
Это не похоже на действительный C#. Я думаю, вы хотите использовать тернарный оператор «?:» Для этого. – fcuesta