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
提前抱歉,我是 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