Two problems:
1) "date" is an SQL reserved word, so calling your column that is always going to give problems.
2) Send the date as a parameter rather that concatenating strings - that is always a better idea as it avoids SQL injection attacks as well.
cmd = New SqlCommand("select * from staffpresentee where [date]=@DT", cn)
cmd.Parameters.AddWithValue("@DT", DateTime.Now.Date)
dr = cmd.ExecuteReader()