VB.NET заставляет таймер действовать как время отклика на время таблицы данных базы данных

0

Хорошо, послушайте меня, а затем скажите мне, что вы думаете о моей проблеме, и любые советы и предложения будут очень благодарны.

У меня две проблемы:

  1. Прикрепите "таймер", который действует как время отклика в данных, которые я вытащил в таблице базы данных (внизу таблицы DB будет добавлена ссылка на скриншот).
  2. Вставьте его в кнопку. Скажем, у меня есть две кнопки: "Начать и заканчивать", когда я нажимаю кнопку "Пуск", затем запускается таймер, и когда я нажимаю кнопку "Завершить", таймер ответа и данные времени, которые я вытащил в базу данных, станут единым целым и сохраняются в отображаемой переменной.

Дополнительная информация. Время отклика - это общая сумма времени, необходимого для ответа на запрос на обслуживание (лучше всего на Per/Transactions).

Вот мой код:

Imports System.Data.SqlClient

Public Class Form1
Public MysqlConn As New SqlConnection
Dim tTime As Double
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub

Private Sub SButton_Click(sender As Object, e As EventArgs) Handles SButton.Click
    tTime = 0.0#
    Timer1.Enabled = True
    SelectedRow("SELECT * FROM TRANS_QUEUE WHERE Que_No = " & 1 & "")
End Sub

Private Sub RButton_Click(sender As Object, e As EventArgs) Handles RButton.Click
    Timer1.Enabled = True

End Sub

Private Sub PButton_Click(sender As Object, e As EventArgs) Handles PButton.Click
    Timer1.Enabled = False
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick


    tTime = tTime + 0.1
    Time.Text = "time =" & tTime
End Sub

Public Sub SelectedRow(ByVal SQCommand As String)
    MysqlConn.ConnectionString = "server=BOSS;user=sa;password=pass2017;database=DB_CFSys"
    MysqlConn.Open()
    Dim SQCmd As New SqlCommand(SQCommand, MysqlConn)
    Dim SQDr As SqlDataReader
    SQDr = SQCmd.ExecuteReader()
    SQDr.Read()
    If SQDr.HasRows Then
        MsgBox(SQDr.Item("Time_Arrive").ToString)
    End If
    MysqlConn.Close()
End Sub

Скриншот таблицы DB

Теги:
timer

1 ответ

0

во всяком случае, я решил это благодаря подсказке, предоставленной Alex Essilfie, ответом в другом посте. Создайте простой таймер для подсчета секунд, минут и часов.

так вот мой ответ:

 Private Sub SButton_Click(sender As Object, e As EventArgs) Handles SButton.Click
    tTime = 0.0#
    Timer1.Enabled = True

End Sub

Private Sub RButton_Click(sender As Object, e As EventArgs) Handles RButton.Click
    Timer1.Enabled = True

End Sub

Private Sub PButton_Click(sender As Object, e As EventArgs) Handles PButton.Click
    Timer1.Enabled = False
    'MsgBox(GetTime(tTime))
    SelectedRow("SELECT * FROM TRANS_QUEUE WHERE Que_No = " & 1 & "")
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick


    tTime = tTime + 0.1
    Time.Text = "time =" & GetTime(tTime)

End Sub

Public Sub SelectedRow(ByVal SQCommand As String)
    MysqlConn.ConnectionString = "server=BOSS;user=sa;password=pass2017;database=DB_CFSys"
    MysqlConn.Open()
    Dim SQCmd As New SqlCommand(SQCommand, MysqlConn)
    Dim SQDr As SqlDataReader
    SQDr = SQCmd.ExecuteReader()
    SQDr.Read()
    If SQDr.HasRows Then
        'MsgBox(SQDr.Item("Time_Arrive").ToString)
        t = TimeSpan.Parse(SQDr.Item("Time_Arrive").ToString)
        t = t + TimeSpan.Parse(GetTime(tTime))
        MsgBox(t.ToString)
    End If
    MysqlConn.Close()

End Sub

Public Function GetTime(Time As Integer) As String
    Dim Hrs As Integer  'number of hours   '
    Dim Min As Integer  'number of Minutes '
    Dim Sec As Integer  'number of Sec     '

    'Seconds'
    Sec = Time Mod 60

    'Minutes'
    Min = ((Time - Sec) / 60) Mod 60

    'Hours'
    Hrs = ((Time - (Sec + (Min * 60))) / 3600) Mod 60

    Return Format(Hrs, "00") & ":" & Format(Min, "00") & ":" & Format(Sec, "00")
End Function

Ещё вопросы

Сообщество Overcoder
Наверх
Меню