2017-01-06 28 views
0

我試圖從數據庫中檢索整數值,然後將值增加1,然後使用遞增的值更新數據庫中的相關字段。這是計算用戶輸入錯誤密碼的次數。我的問題是,第一次輸入不正確的密碼時,計數不正確嘗試次數的字段被設置爲2而不是1.如果我接着嘗試另一次不正確的密碼嘗試,則該值設置爲3,這告訴我它正在增加1,但由於某種原因,第一次嘗試計數兩次。任何意見,爲什麼這可能會發生,將不勝感激!儘管初始值爲0,但數據庫值增量變量從2開始而不是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 

這具有完全相同的結果作爲前面的代碼,我也嘗試過的情況下,聲明結果相同。

回答

0

作爲第一個檢查我會檢查由 CInt(tblOfficialUser.Rows(0).Item("OfficialInvalidLoginNoAttempts")) 返回,以確保它返回0值。

正如你所說你的第二個例子有同樣的問題,我會懷疑它返回1,而不是0

+0

http://imgur.com/xhzdKLe < - 這是我在函數中放置了一個斷點並執行後的代碼截圖。它顯示在'+ = 1'之前,嘗試變量最初設置爲0。這被證明是一個非常奇怪和令人沮喪的錯誤。 – pault494

+0

@ pault494在該屏幕截圖中,您並未實際爲'attempts'指定一個值,並且'Integer'的默認值爲0.斷點連接下一行,或者直接跳到下一條語句以查看嘗試的實際值' –

0

我找到了解決問題的辦法。該函數被調用兩次;一旦在html按鈕上點擊參數並再次在代碼後面單擊事件處理程序。儘管我犯了一個愚蠢的錯誤,但卻吸取了一些教訓。

相關問題