vb.net - 未为类型 '=' 和类型 'DBNull' 定义运算符 'Integer'

标签 vb.net

过去几个小时我一直在挣扎,但仍然无法解决这个问题。我遇到的问题是,当有人被承认数据库更新给他们 BedID 时,当我尝试释放他们时,我似乎无法将 BedID (在数据库中)设置为 Nothing 。这是一个问题,因为我需要能够接纳和解雇尽可能多的人。

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

谢谢!

最佳答案

在读取值之前,您需要执行 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 函数来防止此错误

关于vb.net - 未为类型 '=' 和类型 'DBNull' 定义运算符 'Integer',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16071869/

相关文章:

c# - 当创建它的线程终止时,COM 对象是否被 CLR 释放?

mysql - vb.net DateTimePicker 删除时间 12 :00:00 AM

mysql - 将 mysql 查询转换为在 vb.net 中使用

vb.net - 如何在 VB.net 中创建高质量图标

c# - 在函数中设置可选参数需要常量表达式错误

c# - 如何为 Visual Studio 使用的 IIS Express 添加 net.tcp 协议(protocol)支持?

mysql - SELECT * 与学生姓名串联

vb.net - 如何从数据表中选择数据

c# - 有没有办法在 .NET 中唯一标识连接到 Windows PC 的任何存储介质?

c# - 在 Silverlight(或 WPF)中构建 Roguelike