私は使う傾向があります
If Not IsDBNull(dr("data")) Then
myData = dr("data")
End If
nullをキャッチします。もっと良い方法はありますか?これを何度も使っているようですが?誰もがこれをチェックする関数を書く
mydata = IfNotNull("data")
返される可能性のあるさまざまなデータ型を処理する方法がわかりません。考えてくれてありがとう!
私は使う傾向があります
If Not IsDBNull(dr("data")) Then
myData = dr("data")
End If
nullをキャッチします。もっと良い方法はありますか?これを何度も使っているようですが?誰もがこれをチェックする関数を書く
mydata = IfNotNull("data")
返される可能性のあるさまざまなデータ型を処理する方法がわかりません。考えてくれてありがとう!
CLRオブジェクトがNullableである場合、VB.NETを使用していたときに、次の拡張メソッドを使用しました。
Private Function GetNullable(Of T As Structure)(ByVal row As System.Data.DataRow, ByVal fieldname As String, ByVal convert As Conversion(Of T)) As Nullable(Of T)
Dim nullable As Nullable(Of T)
If System.Convert.IsDBNull(row(fieldname)) Then
nullable = Nothing
Else
nullable = convert(row, fieldname)
End If
Return nullable
End Function
次の代理人とConversion(Of T)
:
Private Delegate Function Conversion(Of T)(ByVal row As System.Data.DataRow, ByVal fieldname As String) As T
次に、関連するデータ型の拡張機能を重ねます。
<Extension()> _
Public Function GetDouble(ByVal row As System.Data.DataRow, ByVal name As String) As Double
Return Convert.ToDouble(row(name))
End Function
<Extension()> _
Public Function GetNullableDouble(ByVal row As System.Data.DataRow, ByVal name As String) As System.Nullable(Of Double)
Return GetNullable(Of Double)(row, name, AddressOf GetDouble)
End Function
最後に、私は使用することができます:
Dim amount As Double? = dr.GetNullableDouble("amount")