2013-10-11 75 views
0

无法使用已停止的定时器的当前值更新我的用户表“小时”“分钟”“秒” 。 我用按钮来停止时间定时器停止时无法获得标签的当前值

Imports System.Data.OleDb 

Public Class frmMain 
Public hh As Integer 
Public mm As Integer 
Public ss As Integer 
Public totalsec As Integer 
Public timercount As Integer 
Public temp As Integer 
Dim cnn3 = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Renz\Documents\Visual Studio 2012\Internet Cafe Billing System\Database\Database1.accdb") 
Dim sql1 As String 
Dim Command1 As New OleDbCommand 
Dim i2 As Integer 


Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

    Timer1.Enabled = True 

End Sub 

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick 
    lbltime.Text = Date.Now.ToString("hh:mm tt") 'live clock 
End Sub 

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles btnLogin.Click 
    frmLogin.Show() 
End Sub 
Private Sub btnEnd_Click(sender As Object, e As EventArgs) Handles btnEnd.Click 
    btnEnd.FlatStyle = FlatStyle.Flat 
    btnGames.FlatStyle = FlatStyle.Flat 
    btnInternet.FlatStyle = FlatStyle.Flat 
    btnLock.FlatStyle = FlatStyle.Flat 
    btnOffice.FlatStyle = FlatStyle.Flat 
    btnLogin.FlatStyle = FlatStyle.Standard 
    btnEnd.ForeColor = Color.Gray 
    btnGames.ForeColor = Color.Gray 
    btnInternet.ForeColor = Color.Gray 
    btnLock.ForeColor = Color.Gray 
    btnOffice.ForeColor = Color.Gray 
    btnLogin.ForeColor = Color.Black 
    btnEnd.Enabled = False 
    btnGames.Enabled = False 
    btnInternet.Enabled = False 
    btnLock.Enabled = False 
    btnOffice.Enabled = False 
    btnLogin.Enabled = True 

    lblend.Text = Format(Now, "hh:mm tt") 'get stop time' 


    Try 
     cnn3.Open() 
     sql1 = "UPDATE Users SET Hours = '" & lblHours.Text & "', Minutes = '" & lblMinutes.Text & "', Seconds = '" & lblSeconds.Text & "' WHERE ID = '" & frmLogin.txtUsername.Text & "'" 
     Command1 = New OleDbCommand(sql1, cnn3) 
     i2 = Command1.ExecuteNonQuery 

    Catch ex As Exception 
     frmLogin.ds = New DataSet 'reset dataset 
     Timer2.Stop() 
     cnn3.Close() 
    End Try 
End Sub 

Private Sub lblRemaining_Click(sender As Object, e As EventArgs) 

End Sub 

Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick 
    If lblHours.Text.Length < 2 Then lblHours.Text = "0" & lblHours.Text '// format from "0" to "00" 
    '// verify Hours. 
    If lblHours.Text > "00" And lblMinutes.Text = "00" Then 
     lblHours.Text -= 1 
     lblMinutes.Text = "60" 
    End If 

    If lblMinutes.Text.Length < 2 Then lblMinutes.Text = "0" & lblMinutes.Text '// format from "0" to "00" 
    '// verify Minutes. 
    If lblMinutes.Text > "00" And lblSeconds.Text = "00" Then 
     lblMinutes.Text -= 1 
     lblSeconds.Text = "60" 
    End If 

    If lblSeconds.Text.Length < 2 Then lblSeconds.Text = "0" & lblSeconds.Text '// format from "0" to "00" 
    '// verify Seconds. 
    If lblSeconds.Text > "00" Then lblSeconds.Text -= 1 

    '// disable Timer. 
    If lblHours.Text = "00" And lblMinutes.Text = "05" AndAlso lblSeconds.Text = "00" Then 
     MsgBox("You only have 5 Minutes Remaining in your Account", MsgBoxStyle.Information) 
    End If 
    If lblHours.Text = "00" And lblMinutes.Text = "00" AndAlso lblSeconds.Text = "00" Then 
     btnEnd.FlatStyle = FlatStyle.Flat 
     btnGames.FlatStyle = FlatStyle.Flat 
     btnInternet.FlatStyle = FlatStyle.Flat 
     btnLock.FlatStyle = FlatStyle.Flat 
     btnOffice.FlatStyle = FlatStyle.Flat 
     btnLogin.FlatStyle = FlatStyle.Standard 
     btnEnd.ForeColor = Color.Gray 
     btnGames.ForeColor = Color.Gray 
     btnInternet.ForeColor = Color.Gray 
     btnLock.ForeColor = Color.Gray 
     btnOffice.ForeColor = Color.Gray 
     btnLogin.ForeColor = Color.Black 
     btnEnd.Enabled = False 
     btnGames.Enabled = False 
     btnInternet.Enabled = False 
     btnLock.Enabled = False 
     btnOffice.Enabled = False 
     btnLogin.Enabled = True 

     lblend.Text = Format(Now, "hh:mm tt") 'get stop time' 


     Try 
      cnn3.Open() 
      sql1 = "UPDATE Users SET ([Hours], [Minutes], [Seconds] = VALUES(' 00 ',' 00 ',' 00 ') WHERE ID = '" & frmLogin.txtUsername.Text & "'" 
      Command1 = New OleDbCommand(sql1, cnn3) 
      i2 = Command1.ExecuteNonQuery 
     Catch ex As Exception 

      cnn3.Close() 
     End Try 
     Timer2.Enabled = False 
     frmLogin.ds = New DataSet 'reset dataset 
    End If 
End Sub 
End Class 

回答

0

使用DateTime对象获得的部分。

Dim dt As DateTime = DateTime.Now 
lblend.Text = dt.ToShortTimeString ' or other format 
    sql1 = "UPDATE Users SET Hours = '" & dt.Hour.ToString & "', Minutes = '" & dt.Minute.ToString & "', Seconds = '" & dt.Seconds.ToString & "' WHERE ID = '" & frmLogin.txtUsername.Text & "'" 
+0

乌姆我使用定时器2与三个标签倒计时,而定时器1是使用DateTime.Now –

+0

所以,在数据库中的值是时间留下的大量实时时钟? – OneFineDay