如果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"))
你可能要創建易於使用的擴展方法(未測試):
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)
的[從DBNull的更改數據行項目爲一個字符串值]
可能重複(http://stackoverflow.com/questions/15507675/change-a-datarow-item-from-dbnull-to-a-字符串值) –
這看起來不像有效的C#。我想你想使用三元運算符「?:」。 – fcuesta