尽管初始值为0,但数据库值的增量变量从2开始,而不是1

时间:2017-01-06 09:41:24

标签: vb.net

我正在尝试从数据库中检索整数值,将值递增1,然后使用递增的值更新数据库中的相关字段。这是计算用户输入错误密码的次数。我的问题是,第一次输入错误的密码时,计算错误尝试次数的字段设置为2而不是1.如果我再做一次错误的密码尝试,则将值设置为3,这告诉我它增加1但由于某种原因,第一次尝试是计数两次。关于为什么会发生这种情况的任何建议都将不胜感激!

以下代码在按钮单击事件后执行:

Dim attempts As Integer = CInt(tblOfficialUser.Rows(0).Item("OfficialInvalidLoginNoAttempts"))
                            attempts += 1
                            UpdateOfficialUserAttempts(UserName, CByte(attempts), Nothing)

我也尝试过:

If CInt(tblOfficialUser.Rows(0).Item("OfficialInvalidLoginNoAttempts")) = 1 Then
                                UpdateOfficialUserAttempts(UserName, CByte(2), Nothing)
                            ElseIf CInt(tblOfficialUser.Rows(0).Item("OfficialInvalidLoginNoAttempts")) = 2 Then
                                UpdateOfficialUserAttempts(UserName, CByte(3), Nothing)
                            Else
                                UpdateOfficialUserAttempts(UserName, CByte(1), Nothing)
                            End If

这与前面的代码完全相同,我也尝试了一个结果相同的case语句。

2 个答案:

答案 0 :(得分:0)

作为第一次检查,我会检查返回的值 CInt(tblOfficialUser.Rows(0).Item("OfficialInvalidLoginNoAttempts")) 确保它返回0

如你所说,你的第二个例子有同样的问题,我怀疑它会返回1,而不是0

答案 1 :(得分:0)

我找到了问题的解决方案。该函数被调用了两次;一次在html按钮中单击参数,然后再次在单击事件处理程序后面的代码中。我这个愚蠢的错误,但仍然吸取了教训。