У меня есть таблица с двумя временными столбцами. Один - это время входа, другой - время выхода из системы. Я хотел бы иметь возможность фильтрации между двумя, в основном больше, чем выбранный минимум и меньше, чем выбранный максимум. Я использую ежемесячный календарь, чтобы получить мне промежутки времени, но он не работает правильно. Оттуда я хотел бы добавить 4 столбца в таблице в сетку. Дата в БД имеет следующий формат:
2/23/2010 11:17:01 AM
Я знаю, как получить отдельные элементы из таблицы или столбца, но не целые строки.
Так что я думаю, у меня есть 2 проблемы: правильно настроить фильтр для SQL и привязать результаты к таблице.
Вот мой код:
Dim cn As OleDbConnection
Dim cmd As OleDbCommand
Dim str As String
Dim dr As OleDbDataReader
Dim date1 As Date
Dim date2 As Date
If (Not SubmitNewToDB(session)) Then
MsgBox("error")
End If
Try
cn = New OleDbConnection("Provider=microsoft.Jet.OLEDB.4.0;Data Source=G:\Sean\BMSBonder3_0.mdb;")
cn.Open()
str = "Select BonderIdentifier, UserName, Login, Logout From [Session] Where (Login < " & MonthCalendar1.SelectionEnd _
& " AND Logout > " & MonthCalendar1.SelectionStart & ") AND BonderIdentifier = " & session.bonderIdentifier
cmd = New OleDbCommand(str, cn)
dr = cmd.ExecuteReader
While dr.Read()
If dr.Item(0).ToString <> "" Then
DataGridView1.Rows.Add(dr.Item(0))
End If
End While
dr.Close()
cn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
EDIT
SLaks ответил на большинство моих вопросов, остается одна проблема. Мне нужно выяснить, как сделать так, чтобы в monthcalendar можно было выбрать только один день и вернуть значения этих дней. Похоже, время является проблемой, так как оно находится в БД, как указано выше. Недостаточно просто сравнить даты.
Не уверен, как настроить дату, чтобы включить время.