定时器停止时无法获得标签的当前值

时间:2013-10-11 03:53:06

标签: sql vb.net timer

无法更新我的用户表“小时”“分钟”“秒” 从已经停止的计时器的当前值。 我用按钮来停止时间

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

1 个答案:

答案 0 :(得分: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 & "'"