我有一个登录表单,应该使用当前登录的用户更新我的本地数据库。在form_load上,它通过tableadapter将所有用户从DB拉到隐藏的datagridview,然后通过计时器每5秒刷新一次。
登录时会禁用计时器,更改datagridview上的单个值,然后运行表adapter.update语句。完成后,它再次启用计时器以刷新datagridview。
我的问题是,在运行时进行测试时,datagridview是可见的,可以看到它更改了用户的值,但是一旦刷新,它就会回到旧值。 loginBtn_Click和Timer1_Tick的代码如下:
Private Sub LoginBtn_Click(sender As Object, e As EventArgs) Handles LoginBtn.Click
If PWTxt.Text = PW Then
If DataGridView1.Item(4, temppos).Value = False Then
Timer1.Enabled = False
LoggedInID = tempID
DataGridView1.Item(4, temppos).Value = True
Me.LoginTableAdapter.Update(LoginDataSet)
MenuForm.Show()
MenuForm.Focus()
Timer1.Enabled = True
Else
MsgBox(Trim(tempID) & " is currently logged in. Please contact your Systems Administrator.")
End
End If
Else
MsgBox("Invalid Password")
LoggedInID = ""
End If
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Try
Me.LoginTableAdapter.Fill(Me.LoginDataSet.Login)
Catch ex As Exception
MsgBox("Failed to refresh. Error : " & vbCrLf & ex.Message)
End Try
End Sub
任何解释或解决方案都将不胜感激。 提前谢谢。