2016-07-11 2 views
1

ошибки в сравнении времени в строкуСравнивая TimeoftheDay в строку

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

сообщение вы говорите, что вы видите на дисплее из' Catch' блока так что исключение должно быть выбрано. Вы изучили это исключение, чтобы узнать, какая информация содержит информацию о том, что пошло не так? Если нет, почему бы и нет? Если есть исключение, то первое, что вы должны сделать, это посмотреть на это исключение. Если у вас есть эта информация, тогда не держите ее в секрете от нас. Это поможет диагностировать проблему, поэтому, если вы хотите, чтобы мы диагностировали проблему, дайте нам информацию. Как только мы узнаем, что представляет собой реальная проблема, мы можем указать, где искать причину. – jmcilhinney

+0

Я уже решу проблему сэр ... на мой первый вопрос. Моя текущая проблема в том, что записи уже существуют, и она сохраняет другую запись снова в базе данных. – Dawn

ответ

0

Вот мои текущие коды Можно ли пересмотреть эту Коды Если запись уже существовать MessageBox появится говоря: «Жаль, что вы закончили журнал в»

в противном случае она будет сохранять/добавлять записи в моей базе данных (проблема, если записи еще существует его добавить/вставить другой такой же запись) Dim соед Как OleDb.OleDbConnection = GetConnection() Dim SQL As String Dim SQL1 As String «Dim A As Integer Dim результат = Nothing

'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 
Смежные вопросы