2013-07-25 37 views
2

如果DataRow中的一列可能是DBNull,請使用以下代碼替換空字符串的最短路線:DBNull將空字符串替換爲DBNull的最佳方法是什麼?

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

可能重複(http://stackoverflow.com/questions/15507675/change-a-datarow-item-from-dbnull-to-a-字符串值) –

+0

這看起來不像有效的C#。我想你想使用三元運算符「?:」。 – fcuesta

回答

2

dataRow1("column1") & ""將在VB中產生所需的結果。

+0

這不適用於類型安全代碼(使用'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,這將轉化DBNullNothing你。另外,它們是類型安全的。

Dim result = If(dataRow1.Field(Of String)("column1"), String.Empty) 
的[從DBNull的更改數據行項目爲一個字符串值]
相關問題