Страница: 1 |
Страница: 1 |
Вопрос: Ребят, подскажите снова про Calendar (с кодом)
Добавлено: 25.05.10 14:52
Автор вопроса: Alba
Здравствуйте!))
У меня такая проблема...На форме 2 календаря, 2 текстбокса, кнопка, gridview и AccessDataSourse (настроен под мою БД и нужную таблицу)...Выбираю диапазон дат в календарях, нажимаю кнопку и даты выводятся в текстбоксы,...при этом необходимо чтобы выводились данные из таблицы БД в gridview только по выбранному диапазону дат...но этого не происходит. Что можно с эти м сделать? В обработчике нажатия кнопки пишу следующий код:
Protected Sub Button6_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button6.Click
Dim oDataSet As New DataSet 'Объявляем базу данных
Dim cnn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\FDB.mdb;Persist Security Info=False"
Dim nDays As Long
nDays = DateDiff(DateInterval.Day, Calendar1.SelectedDate.Date, Calendar2.SelectedDate.Date)
TextBox1.Text = Calendar1.SelectedDate.Date
TextBox2.Text = Calendar2.SelectedDate.Date
If Calendar2.SelectedDate.Date <= DateTime.Today And Calendar1.SelectedDate.Date <= DateTime.Today Then
AccessDataSource2.SelectCommand = "select izv_date from izveshenij where izv_date between'" & Calendar1.SelectedDate.Date & "' and '" & Calendar2.SelectedDate.Date & "'group by izv_date"
GridView2.DataBind()
End If
End Sub
Или последние 4 строчки заменить на:
Dim D1 As DateTime = Calendar1.SelectedDate.Date
Dim D2 As DateTime = Calendar2.SelectedDate.Date
AccessDataSource2.SelectCommand = "select izv_date from izveshenij where izv_date between D1 and D2 group by izv_date"
GridView2.DataBind()
аверное еще нужно указать тип данных, что-то вроде "' Dim d2 As DateTime = DateTime.ParseExact(DateString, "MM'/'dd'/'yyyy", Nothing)", но как это все применить к конкретному примеру незнаю. Не могли бы вы мне снова подсказать..?
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #1
Добавлено: 25.05.10 16:59
select izv_date from izveshenij where izv_date between # Calendar1.SelectedDate.Date # and # Calendar2.SelectedDate.Date #
вместо Calendar1.SelectedDate.Date Calendar2.SelectedDate.Date подставить выражение этих дат в строковом виде в формате MM/DD/YYYY. Например, выбрано 25 декабря 2005 г - подставлять строку "12/05/2005" или "12/5/2005".
Причем насколько я сталкивалась, то разделитель в дате должен быть "/", даже если системный какой-то другой.
Номер ответа: 2
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #2
Добавлено: 25.05.10 17:01
Сорри, строка "12/25/2005". Поторопилась.
Номер ответа: 3
Автор ответа:
Alba
Вопросов: 8
Ответов: 37
Профиль | | #3
Добавлено: 25.05.10 17:03
Я не могу строго задавать дату в запросе, я ведь не знаю какой диапазон дат выберет пользователь.
Номер ответа: 4
Автор ответа:
Alba
Вопросов: 8
Ответов: 37
Профиль | | #4
Добавлено: 25.05.10 17:04
Попыталась выбранную дату записать как переменную, и ее уже использовать в запросе,...но тоже ничего...
Номер ответа: 5
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #5
Добавлено: 26.05.10 17:27
Еще раз повторяю. Дата из Календаря читается в том формате, какой установлен в системе Виндов. Тебе нужно взять из нее день - Day(Calendar.Date) , месяц - Month(Calendar.Date), год - Year(Calendar.Date). Составить из нее строку в формате "ММ/ДД/ГГГГ" - Month(Calendar.Date)&"/"&ay(Calendar.Date)&"/"&Year(Calendar.Date).
И это уже вставлять в текст запроса.
Т. Е. ДАТА ДОЛЖНА БЫТЬ В СТРОКОВОМ ФОРМАТЕ !!! (пример выше)
Номер ответа: 6
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #6
Добавлено: 29.05.10 00:04
А какже Format$ ?
Помоему так проще.
Номер ответа: 7
Автор ответа:
Alba
Вопросов: 8
Ответов: 37
Профиль | | #7
Добавлено: 06.06.10 10:36
У меня получилось, спасибо)