VB 访问更新数据类型不匹配

VB Access Update data type mismatch

提前抱歉,我是 vb、

的新手

我正在创建一个用于分配的小型应用程序作为 MCQ 测验,我使用相同的表单,但使用 [nextques] 的功能继续下一个问题并使用 [answer] 将用户答案更新到数据库(访问)。

我以前使用 SQL 服务器,它运行良好,但由于我需要 运行 学校计算机中的应用程序,他们不允许我安装任何东西,所以我完全不知道决定使用访问权限,因为它更容易导出并将其包含在调试文件中。

我浏览了一些主题并进行了一些更改,但问题仍然存在。我将访问中的 [input] 设置为整数,我确实在其上设置了参数,但它仍然无法正常工作。

错误代码:条件表达式中的数据类型不匹配

Public Function answer(ans As Integer)
    Try
        con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mom.mdb;"
        con.Open()
        cmd.Connection = con
        ' Update the answer 1234 (as abcd) according to id in lblnum.text
        Dim updatecmd As String = "UPDATE question SET [input] = @ans WHERE id = '" & lblnum.Text & "'"

        cmd.Parameters.AddWithValue("@ans", ans)
        cmd.CommandText = updatecmd
        updatecmd = cmd.ExecuteNonQuery()
        con.Close()

        'Proceed to next question by calling Function NextQues
        nextques()

    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
    Return 0
End Function

我也试过这样做,但是另一个错误显示:无法使用与其底层 RCW 分离的 COM 对象

Public Function answer(ans As Integer)
    Dim countid As Integer = 1
    Try
        con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mom.mdb;"
        con.Open()
        cmd.Connection = con

        Dim updatecmd As String = "UPDATE question SET [input] = @ans WHERE id = @countid"

        cmd.Parameters.AddWithValue("@countid", countid)
        cmd.Parameters.AddWithValue("@ans", ans)
        cmd.CommandText = updatecmd
        updatecmd = cmd.ExecuteNonQuery()

        countid = countid + 1
        con.Close()



        'Proceed to next question by calling Function NextQues
        nextques()

    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
    Return 0
End Function

更改此行

Dim updatecmd As String = "UPDATE question SET [input] = @ans WHERE id = '" & lblnum.Text & "'"

Dim updatecmd As String = "UPDATE question SET [input] = @ans WHERE id = " & lblnum.Text