Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 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)&"/"&;Day(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
У меня получилось, спасибо)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам