I am trying to check if a column is empty before inserting a date, but I am receiving an error and I don't know how to fix it. I read about ExecuteScalar()
, but in my case it doesn't help.
Code:
Dim sql As String = "UPDATE [TA-Arbeitszeit] SET Ende = @ende WHERE Personal_nr = @Personal_nr AND Arbeitstag = @Arbeitstag"
Dim sql2 As String = "SELECT * FROM [TA-Arbeitszeit] WHERE Personal_nr = @Personal_Nr AND Arbeitstag = @Arbeitstag"
Using conn2 As New OleDbConnection(connectionString),
cmd2 As New OleDbCommand(sql2, conn2)
conn2.Open()
cmd2.Parameters.Add("@Personal_nr", OleDbType.VarChar).Value = tbxUserInput.Text.Trim()
cmd2.Parameters.Add("@Arbeitstag", OleDbType.VarChar).Value = DateTime.Now.ToString("d")
Dim ende As String
Using reader0 As OleDbDataReader = cmd2.ExecuteReader()
reader0.Read()
ende = reader0(3)
End Using
If String.IsNullOrEmpty(ende) Then
Using conn As New OleDbConnection(connectionString),
cmd As New OleDbCommand(sql, conn)
conn.Open()
cmd.Parameters.Add("@ende", OleDbType.VarChar).Value = DateTime.Now.ToString("G")
cmd.Parameters.Add("@Personal_nr", OleDbType.VarChar).Value = tbxUserInput.Text.Trim()
cmd.Parameters.Add("@Arbeitstag", OleDbType.VarChar).Value = DateTime.Now.ToString("d")
Dim icount As Integer = cmd.ExecuteNonQuery
End Using
frmGreetings.Label1.Text = eveninggreetingsAray()
frmGreetings.Label2.Text = "Sie haben Ihren Arbeitstag beendet."
frmGreetings.ShowDialog()
tbxUserInput.Select()
Else
frmNotificationBox.Label1.Text = "Ihren Arbeitstag ist schon beendet!"
frmNotificationBox.ShowDialog()
tbxUserInput.Select()
End If
End Using