0

私は次のコードを持っています:

Dim getProspect = (From p In dbContext.IRF_Prospects _
                   Where p.url = prospect_url _
                   Select p).FirstOrDefault
' If they have a record...
If Not IsDBNull(getProspect) Then
    If IsDBNull(getProspect.user_id) Then
        ' Prepopulate the form with their information.
        txtFirst.Text = getProspect.first_name
Else
        ' Redirect them to login.
        Response.Redirect("login.aspx")
End If

実行すると、オブジェクトエラーのインスタンスに設定されていないオブジェクト参照がスローされますgetProspect.user_id。なぜこれをしているのですか?最初にそれが存在することを確認しているという事実は、これが起こらないようにするべきではありませんIsDBNullか?

4

1 に答える 1

1

DBNullと同じではなく、Nothingあなたが持っているのはですNothingFirstOrDefault、名前が示すように、最初の項目またはNothing参照型用のデフォルト値を返します-決してDBNull

Dim getProspect = (From p In dbContext.IRF_Prospects _
                   Where p.url = prospect_url _
                   Select p).FirstOrDefault
' If they have a record...
If getProspect IsNot Nothing Then
    If IsDBNull(getProspect.user_id) Then
        ' Prepopulate the form with their information.
        txtFirst.Text = getProspect.first_name
    Else
        ' Redirect them to login.
        Response.Redirect("login.aspx")
    End If
于 2012-05-22T23:15:22.923 に答える