将TimeoftheDay与String进行比较

时间:2016-07-11 02:48:38

标签: vb.net

比较字符串的时间时出错

  

Cdate是我之前的代码,我将它修改为compareTime任何人都可以   如果比较时间的当前表达式是正确的,请帮助我   消息是“联系您的管理员!也许您不是   注册“。

所以表达式仍然是“假”

#Region "TIMER"
    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
        LBLDATE.Text = My.Computer.Clock.LocalTime.Date
    End Sub
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        LBLTIME.Text = TimeOfDay
    End Sub
#End Region

   Dim conn As OleDb.OleDbConnection = GetConnection()
    Dim sql As String
    Dim sql1 As String
    Dim A As Integer
    Dim result = Nothing
    Dim compareTime As String = "7:01:00 PM"


    ' Dim amlate1 As String = "7:01:00 PM"
    Dim remm1 As String

    ' If CDate(Form7TO3.LBLTIME.Text) >= CDate(amlate1) Then
    If compareTime = DateTime.Now.ToString("h:mm:ss tt") Then
        remm1 = "LATE"
    Else
        remm1 = "ON TIME"
    End If

    Try

        sql1 = "SELECT * FROM DTR_REC WHERE MEM_CODES LIKE '" & Form7TO3.txtinput.Text & "' AND SDATE = '" & Form7TO3.LBLDATE.Text & "'"
        Dim DA As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(sql1, conn)
        Dim DS As New DataSet
        DA.Fill(DS, "dtrdb")
        A = DS.Tables("dtrdb").Rows.Count
        If A > 0 Then

            MessageBox.Show("Sorry you Already finished Log in!")

        Else
            sql = "INSERT INTO DTR_REC (MEM_CODES, AM_IN, FIRST_AM_REMARK, SDATE) VALUES (@MEM_CODES, @AM_IN, @FIRST_AM_REMARK, @SDATE)"
            Dim cmd As New OleDb.OleDbCommand(sql, conn)
            cmd.Parameters.Add(New OleDb.OleDbParameter("@MEM_CODES", Form7TO3.txtinput.Text))
            cmd.Parameters.Add(New OleDb.OleDbParameter(" @AM_IN", Form7TO3.LBLTIME.Text))
            cmd.Parameters.Add(New OleDb.OleDbParameter("@FIRST_AM_REMARK", remm1))
            cmd.Parameters.Add(New OleDb.OleDbParameter("@SDATE", DateTime.Parse(Form7TO3.LBLDATE.Text)))

            conn.Open()
            cmd.ExecuteNonQuery()
            If remm1 = "LATE" Then
                MessageBox.Show("Hurry up your Late")
            ElseIf remm1 = "ON TIME" Then
                MessageBox.Show("Very good you come on time!")
            End If
        End If

        clear()


    Catch ex As Exception
        Dim dgresult As DialogResult
        Dim ms As String
        ms = "Contact your Administrator! Maybe your not registered."
        MessageBox.Show(ms, "Error in connection", MessageBoxButtons.OKCancel, _
                        MessageBoxIcon.Stop, MessageBoxDefaultButton.Button2)

        If dgresult = DialogResult.Yes Then
            Form1.Show()
        End If

    End Try
    Return result

1 个答案:

答案 0 :(得分:0)

这是我目前的代码 任何人都可以修改此代码 如果记录已经存在,则会出现一个消息框,上面写着“抱歉,您已完成登录”

否则它会在我的数据库中保存/添加记录 (问题是,如果记录仍然存在,则添加/插入另一个相同的记录)     Dim conn As OleDb.OleDbConnection = GetConnection()         Dim sql As String         Dim sql1 As String         '将A视为整数         昏暗的结果=没什么

    'Dim time_1 As String = DateTime.Parse("11:00:00 PM").ToString("T")
    'Dim time_2 As String = DateTime.Now.ToString("T")
    Dim remm1 As String
    Dim PMOUT As String = "11:00:00 PM"


    Dim str As String = "HH:mm:ss"

    str = TimeOfDay()
    ' If DateTime.Now.TimeOfDay > amlate1.TimeOfDay Then
    ' If DateTime.Compare(time_1, time_2) > 0 Then

    If str >= PMOUT Then
        remm1 = "LATE"
    Else
        remm1 = "ON TIME"
    End If

    Try
        conn.Open()
        sql1 = "SELECT * FROM DTR_REC WHERE MEM_CODES = '" & Form11TO7.txtinput.Text & "' AND SDATE = #" & FormatDateTime(DateTime.Now, DateFormat.GeneralDate = DateFormat.ShortDate) & "#"
        ' Dim DA As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(sql1, conn)
        Dim cmd1 As New OleDb.OleDbCommand(sql1, conn)
        'Dim DS As New DataSet
        'DA.Fill(DS, "dtrdb")
        'A = DS.Tables("dtrdb").Rows.Count
        'If A > 0 Then
        Using reader As OleDb.OleDbDataReader = cmd1.ExecuteReader()
            If reader.HasRows Then

                'user already finished to time in
                MessageBox.Show("Sorry you Already finished Log in!")

            Else
                sql = "INSERT INTO DTR_REC (MEM_CODES, PM_IN, FIRST_PM_REMARK, SDATE) VALUES (@MEM_CODES, @PM_IN, @FIRST_PM_REMARK, @SDATE)"
                Dim cmd As New OleDb.OleDbCommand(sql, conn)
                cmd.Parameters.Add(New OleDb.OleDbParameter("@MEM_CODES", Form11TO7.txtinput.Text))
                cmd.Parameters.Add(New OleDb.OleDbParameter(" @PM_IN", str))
                cmd.Parameters.Add(New OleDb.OleDbParameter("@FIRST_PM_REMARK", remm1))
                cmd.Parameters.Add(New OleDb.OleDbParameter("@SDATE", FormatDateTime(DateTime.Now, DateFormat.GeneralDate = DateFormat.ShortDate)))
                Dim icount As String
                icount = cmd.ExecuteNonQuery()
                MessageBox.Show(icount)
                If remm1 = "LATE" Then
                    MessageBox.Show("Hurry up your Late")
                ElseIf remm1 = "ON TIME" Then
                    MessageBox.Show("Very good you come on time!")
                End If
            End If
        End Using
        clear()


    Catch ex As Exception
        Dim dgresult As DialogResult
        Dim ms As String
        ms = "Contact your Administrator! Maybe your not registered."
        'MessageBox.Show(ms = "Contact your Administrator! Maybe your not registered." & vbNewLine & ex.Message)


        MessageBox.Show(ms, "Error in connection", MessageBoxButtons.OKCancel, _
        MessageBoxIcon.Stop, MessageBoxDefaultButton.Button2)

        If dgresult = DialogResult.Yes Then
            Form1.Show()
        End If
        'MessageBox.Show(ex.Message)
    End Try
    Return result