提前抱歉,我是vb新手,
我正在创建一个小型应用程序作为MCQ测验,我使用相同的表格,但使用[nextques]的功能继续下一个问题并使用[answer]更新用户对数据库的答案(访问)。
我之前使用的是SQL Server,它运行良好,但由于我需要在学校的计算机上运行应用程序而不允许我安装任何东西,我根本不知道然后决定使用访问权限,因为它更容易导出并将其包含在调试文件中。
我已经完成了一些主题并做了一些更改,但问题仍然存在。我将访问中的[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
答案 0 :(得分:0)
更改此行
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