「空白」と言うので、列の実際のタイプはstring
.
次にDouble.TryParse
、それがnullか空かを使用または確認できます
Dim ordinalIndex = reader.GetOrdinal("Load_Pc")
Dim Load_Pc As Double = Double.MinValue
If Not reader.IsDbNull(ordinalIndex) Then
Dim loadPC As String = reader.GetString(ordinalIndex)
If Not String.IsNullOrWhiteSpace(loadPC) Then
Load_Pc = Double.Parse(loadPC)
End If
End If
ここでTryParse
アプローチ:
Double.TryParse(reader.GetString(ordinalIndex), Load_Pc)
ただし、可能であれば、常に正しい型を格納する必要があります。string/varchar
数値やDateTime
. そうすれば、より効率的でエラーが発生しにくくなります。
Dim Load_Pc As Double = reader.GetDouble(ordinalIndex)
Nullable(Of Double)
代わりにa を使用する場合:
Dim Load_Pc As Double? = Nothing
Dim dLoad_Pc As Double
If Double.TryParse(reader.GetString(ordinalIndex), dLoad_Pc) Then
Load_Pc = dLoad_Pc
End If