Страница: 1 |
Вопрос: Ребят, подскажите снова про Calendar (с кодом) | Добавлено: 25.05.10 14:52 |
Автор вопроса: ![]() |
Здравствуйте!))
У меня такая проблема...На форме 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 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 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 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 23 Ответов: 417 |
Профиль | Цитата | #2 | Добавлено: 25.05.10 17:01 |
Сорри, ![]() ![]() |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 8 Ответов: 37 |
Профиль | Цитата | #3 | Добавлено: 25.05.10 17:03 |
Я не могу строго задавать дату в запросе, я ведь не знаю какой диапазон дат выберет пользователь. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 8 Ответов: 37 |
Профиль | Цитата | #4 | Добавлено: 25.05.10 17:04 |
Попыталась выбранную дату записать как переменную, и ее уже использовать в запросе,...но тоже ничего... |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 23 Ответов: 417 |
Профиль | Цитата | #5 | Добавлено: 26.05.10 17:27 |
Еще раз повторяю. Дата из Календаря читается в том формате, какой установлен в системе Виндов. Тебе нужно взять из нее день - Day(Calendar.Date) , месяц - Month(Calendar.Date), год - Year(Calendar.Date). Составить из нее строку в формате "ММ/ДД/ГГГГ" - Month(Calendar.Date)&"/"&![]() И это уже вставлять в текст запроса. Т. Е. ДАТА ДОЛЖНА БЫТЬ В СТРОКОВОМ ФОРМАТЕ !!! (пример выше) |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: adamis@list.ru Вопросов: 153 Ответов: 3632 |
Профиль | Цитата | #6 | Добавлено: 29.05.10 00:04 |
А какже Format$ ?
Помоему так проще. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 8 Ответов: 37 |
Профиль | Цитата | #7 | Добавлено: 06.06.10 10:36 |
У меня получилось, спасибо) |
Страница: 1 |
|