Hi All,

I want my program to have function auto refresh every 5 minutes , and update data in my data grid view.
here is my program look like.

Name:  zzzzzzzzzzz.jpg
Views: 8756
Size:  22.2 KB

here is my code.
When i click btn_SHow it will auto load data grid view and automatic calculate formula below.
I want every 5 minutes all will be refresh or update data.
so it will look like a monitoring program.

Code:
  Private Sub btn_Show_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Show_.Click
        Dim startDate = dtpFrom.Value.Date
        Dim endDate = dtpTo.Value.Date.AddDays(1)
        If txtTarget.Text <> "" Then

            connection.Open()
            sqlCmd = connection.CreateCommand
            sqlCmd.CommandText = ("WITH Src AS (SELECT station_no,CASE WHEN TestResult = 'ok' THEN 1 END AS ok,CASE WHEN TestResult = 'NG' " &
             "THEN 1 END AS NG,CASE WHEN TestResult = 'RR' THEN 1 END AS RR FROM TEST_TABLE WHERE SQLDateTime >= @startDate AND SQLDateTime < @endDate and Station_No in (1,2,3,4,5,6))SELECT station_no, COUNT(ok) AS TotalOK,COUNT(NG) " &
             "AS TotalNG,COUNT(RR) AS TotalRR,COUNT(ok) + COUNT(NG) + COUNT(RR) AS Total_Sum  FROM Src GROUP BY ROLLUP (Station_No)ORDER BY " &
             "Station_No DESC")
            sqlCmd.Parameters.AddWithValue("@startDate", dtpFrom.Value.Date)
            sqlCmd.Parameters.AddWithValue("@endDate", dtpTo.Value.Date.AddDays(1))

            Dim dr As SqlDataReader = sqlCmd.ExecuteReader
            If dr.HasRows Then
                dtRecords_C1.Load(dr)
                dgvCell1_Muscatel_MPCA.DataSource = dtRecords_C1
                dgvCell1_Muscatel_MPCA.Show()
            Else
                MsgBox("NO DATA ", MsgBoxStyle.Critical, "ERROR")
                dr.Close()

            End If
            connection.Close()

            'cell 2
            connection.Open()
            sqlCmd = connection.CreateCommand
            sqlCmd.CommandText = "WITH Src AS (SELECT station_no,CASE WHEN TestResult = 'ok' THEN 1 END AS ok,CASE WHEN TestResult = 'NG' " &
             "THEN 1 END AS NG,CASE WHEN TestResult = 'RR' THEN 1 END AS RR FROM TEST_TABLE WHERE  SQLDateTime >= @startDate AND SQLDateTime < @endDate and Station_No in (7,8,9,10,11,12))SELECT station_no, COUNT(ok) AS TotalOK,COUNT(NG) " &
             "AS TotalNG,COUNT(RR) AS TotalRR,COUNT(ok) + COUNT(NG) + COUNT(RR) AS Total_Sum FROM Src GROUP BY ROLLUP (Station_No)ORDER BY " &
             "Station_No DESC"
            sqlCmd.Parameters.AddWithValue("@startDate", dtpFrom.Value.Date)
            sqlCmd.Parameters.AddWithValue("@endDate", dtpTo.Value.Date.AddDays(1))
            Dim dr_C2 As SqlDataReader = sqlCmd.ExecuteReader
            If dr_C2.HasRows Then
                dtRecords_C2.Load(dr_C2)
                dgvCell2_Muscaatel_MPCA.DataSource = dtRecords_C2
            Else
                MsgBox("NO DATA ", MsgBoxStyle.Critical, "ERROR")
                '  txtEfficiency.Text = Efficiency.ToString("p2")
                dr_C2.Close()

            End If
            connection.Close()



            'CELL 1
            Dim rows = dtRecords_C1.Rows
            Dim lastRow = rows(rows.Count - 1)
            Dim totalOk = CInt(lastRow("TotalOK"))
            Dim total_Input = CInt(lastRow("Total_Sum"))
            Dim yield = totalOk / total_Input

            txtTotalOk_C1.Text = totalOk.ToString()
            txtTotalInput_C1.Text = total_Input.ToString()
            txtYieldRate_C1.Text = yield.ToString("p2")

            Dim Target = txtTarget.Text    'declare var Target assign value from txttarget * 6
            Dim Efficiency = total_Input / Target       'compute eff by dividing t_input /target
            txtEfficiency_C1.Text = Efficiency.ToString("p2")  'p2 * 100 and percent sign
            txtTarget.Text = Target

            'CELL2
            Dim rows_C2 = dtRecords_C2.Rows
            Dim lastRow_C2 = rows_C2(rows_C2.Count - 1)
            Dim totalOk_C2 = CInt(lastRow_C2("TotalOK"))
            Dim total_Input_C2 = CInt(lastRow_C2("Total_Sum"))
            Dim yield_C2 = totalOk_C2 / total_Input_C2

            txtTotalOk_C2.Text = totalOk_C2.ToString()
            txtTotalInput_C2.Text = total_Input_C2.ToString()
            txtYield_C2.Text = yield_C2.ToString("p2")

            '  Dim Target = txtTarget.Text * 6     'declare var Target assign value from txttarget * 6
            Dim Efficiency_C2 = total_Input_C2 / Target       'compute eff by dividing t_input /target
            txtEfficiency_C2.Text = Efficiency_C2.ToString("p2")  'p2 * 100 and percent sign
            txtTarget.Text = Target
        Else
            MsgBox("PLEASE KEY IN TARGET ", MsgBoxStyle.Critical, "ERROR")

        End If
    End Sub