10

私は過去数時間苦労してきましたが、まだ頭を悩ませています。私が抱えている問題は、誰かが BedID を与えるデータベースの更新を認められたときです。その後、それらを放電しようとすると、(データベース内の) BedID を何も設定できないようです。できるだけ多くの人を入院させて退院させる必要があるため、これは問題です。

Sub Dis1_Click(ByVal s As Object, ByVal e As EventArgs) Handles Dis1.ServerClick

    Dim time As String = Now().ToString("dd-MM-yyyy hh:mm:ss")

    sql = "UPDATE Allocation  SET BedID = NULL , DischargeDate =" + "'" + time + "'" + " WHERE BedID = 1 "
    cmd = New OdbcCommand(sql, cn)
    cmd.ExecuteNonQuery()
End Sub

Sub BedCheck1()
    If r("BedID") = "" Then
    Else
        If r("BedID") = 1 Then
            ba = s & "<tr><td>" & r("Surname") & "</td>" & "<td>" & r("Forename") & "/<td>" & "<td>" & r("AdmitDate") & "</td>" & "<td>" & r("DischargeDate") & "</td>" & "<td>" & r("comments") & "</td></tr>"
        End If
    End If
End Sub

ありがとう!

4

3 に答える 3

23

値を読み取る前に、DbNull チェックを行う必要があります。

If Not IsDbNull(r("BedID")) Then

    If r("BedID") = "" Then
    Else If r("BedID") = 1 Then
        ba = s & "<tr><td>" & r("Surname") & "</td>" & "<td>" & r("Forename") & "/<td>" & "<td>" & r("AdmitDate") & "</td>" & "<td>" & r("DischargeDate") & "</td>" & "<td>" & r("comments") & "</td></tr>"
    End If
End If

DbNull は特殊なケースであり、このエラーを防ぐには IsDbNull 関数を使用する必要があることに注意してください。

于 2013-04-17T23:20:27.663 に答える