TIL

Today I Learned. 知ったこと、学んだことを書いていく

データが Null です。このメソッド、またはプロパティは Null 値で呼び出せません。 - VB.NET

SQLを実行して、結果を取得しようとしたときに、このエラーが発生した。

データベースを見てみると、確かに、NULLになっている。

でも、値がNULLの列を取得しようとしただけでエラーになるってどういうこと!?

このサイトで英訳すると、 Data is Null. This method or property cannot be called on Null valuesとなる

解決策

NULLを許可している列から値を取得するときにはSqlDataReader.IsDBNullを使って、値がNULLではないか確認してから、値の取得を行うようにする

''' <summary>
    ''' Stringを取得する(NULL値の場合、Nothingを返す)
    ''' </summary>
    ''' <param name="sqlReader">値を取得するSqlDataReader</param>
    ''' <param name="idx">結果のインデックス番号</param>
    ''' <returns>String(NULL値の場合、Nothingを返す)</returns>
    Private Function GetStringSqlReader(ByRef sqlReader As SqlDataReader, ByVal idx As Integer) As String

        ' NULLの場合、Nothing を返し、NULLではない場合、入っているデータを返す
        If sqlReader.IsDBNull(idx) Then
            Return Nothig
        Else
            Return sqlReader.GetString(idx)
        End If

    End Function

参考文献