2014-02-20 6 views
1

я в настоящее время работает на сайт, который предлагает услуги обучения и я застрял в этом вопросе довольно долгое время ..Выбор значения между 2 датами

У меня есть 2 текстовых полей, когда пользователь выбирает дату запуска и дату завершения, когда пользователь нажимает на просмотр, он должен был видеть результаты в виде сетки. Я использую FormParameters для вставки даты в запрос.

SelectCommand из SqlDataSource

SelectCommand="SELECT [Session].Session_num AS Num, [Session].Session_Time_Stamp AS Session_Date, Student.Student_First & ' ' & Student.Student_Last AS Student FROM (([Session] INNER JOIN Student ON [Session].Student_Num = Student.Student_Num) INNER JOIN Class ON [Session].Class_ID = Class.Class_ID) WHERE ((([Session].Session_Time_Stamp) Between @firstdate And @seconddate))"> 

параметров SqlDataSource

<SelectParameters> 
    <asp:FormParameter Name="firstdate" Type="DateTime"/> 
    <asp:FormParameter Name="seconddate" Type="DateTime"/> 
</SelectParameters> 

Это выполняется, когда пользователь нажимает на кнопку просмотра, это то, где я установить значения параметров и выполнить sql select.

Dim fdate As DateTime = Format(CDate(txtStartDate.Text), "MM/dd/yyyy") 
Dim ldate As DateTime = Format(CDate(txtEndDate.Text), "MM/dd/yyyy") 
gridTutor.SelectParameters("firstdate").DefaultValue = fdate 
gridTutor.SelectParameters("seconddate").DefaultValue = ldate 
gridTutor.Select(DataSourceSelectArguments.Empty) 
gridTutorSessions.DataBind() 

fdate и ldate не являются пустым, однако после этого результат запроса пуст. Могут ли быть неправильные методы для выполнения выбора?

Редактировать: Я понял, что проблема связана с запросом и форматом DateTime. Когда я изменил значение своего текстового поля на DateTime, он разместил его так: # 2/20/2014 #. Однако он ничего не возвращает, даже если между двумя датами существуют значения. Если у кого-то есть запрос доступа с DateTime, я бы хотел его увидеть. Спасибо

+0

Итак, где код, который фактически выполняет обновленную команду выбора после применения параметров ...? Дайте нам больше контекста, пожалуйста. – Serialize

+1

Странно, что вы получаете строку, конвертируете ее в дату с CDate, а затем конвертируете обратно в строку с форматом, чтобы поместить его в дату. –

+0

Я бы добавил точку останова на «gridTutor.SelectParameters (« firstdate »). DefaultValue = fdate», убедитесь, что значения firstdate и seconddate фактически заполнены (не пробелы) – Sean

ответ

0

Мне удалось исправить это, форматируя дату в моей базе данных доступа, это не лучшее решение, но оно является исправлением ситуации

-1

Я считаю, что вам нужно вручную установить fdate и ldate как раз перед тем, как вы сделаете «selectparameters» (например, используйте «fdate = Format (CDate (txtStartDate.Text)», «MM/dd/yyyy») ». следующие значения, присваиваемые Dim в том виде, в котором вы располагаете, не будут отражать нужные значения в реальном времени. См. следующее в отношении VB: «Вы можете присвоить значение переменной при ее создании. Для типа значения вы используете инициализатор для предоставления выражения, которое должно быть назначено переменной. Выражение должно оцениваться константой, которая может быть вычислена во время компиляции.

Смежные вопросы