я в настоящее время работает на сайт, который предлагает услуги обучения и я застрял в этом вопросе довольно долгое время ..Выбор значения между 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, я бы хотел его увидеть. Спасибо
Итак, где код, который фактически выполняет обновленную команду выбора после применения параметров ...? Дайте нам больше контекста, пожалуйста. – Serialize
Странно, что вы получаете строку, конвертируете ее в дату с CDate, а затем конвертируете обратно в строку с форматом, чтобы поместить его в дату. –
Я бы добавил точку останова на «gridTutor.SelectParameters (« firstdate »). DefaultValue = fdate», убедитесь, что значения firstdate и seconddate фактически заполнены (не пробелы) – Sean