sreenivashan Ответов: 3

Crystal Reports - получение данных между двумя датами


Уважаемые Эксперты..

Я новичок в разработке crystal Report. Я хочу знать, как получить данные между двумя датами. У меня есть два текстовых поля для from date и To date в FrmDate(форме). и поставьте одну кнопку для события clicke. если я даю две разные даты в два текстовых поля, а затем нажимаю эту кнопку, то мой отчет показывает данные только между этими датами. пожалуйста, помогите мне..
ДБ sqlserver2005
заранее спасибо.
Срини

3 Ответов

Рейтинг:
2

Member 14581006

select * from MyTable where DATE BETWEEN '" + Convert.ToDateTime(TXT_FROM_DATE.Text).ToString("MMM/dd/yyyy") + "' AND '" + Convert.ToDateTime(TXT_TO_DATE.Text).ToString("MMM/dd/yyyy") + "'


CHill60

Причины моего понижения голоса:
1 - это ничем не отличается от решения 2, опубликованного 5 лет назад
2 - Вы используете Convert.ToDateTime который выдаст исключение если текст не находится в правильном формате
3 - Ваш код уязвим для атаки SQL - инъекций - никогда не объединяйте строки для создания SQL-операторов, особенно если они используют данные непосредственно из пользовательского ввода.

Рейтинг:
1

RAHUL(10217975)

Выберите * из списка
Имятаблицы Т
Где обменять(дата,Т.Fromdate,10) &ГТ;= преобразование(дата,@FromDate,10)
и
Конвертировать(дата,Т.Современные,10) &ЛТ;= преобразование(дата,@сегодня,10)

Пожалуйста примите это решение если оно удовлетворяет ваши потребности


sreenivashan

Привет, Рахул.. Это мой вопрос.
Я новичок в разработке crystal Report. Я хочу знать, как получить данные между двумя датами. У меня есть два текстовых поля для from date и To date в FrmDate(форме). и поставьте одну кнопку для события clicke. если я даю две разные даты в два текстовых поля, а затем нажимаю эту кнопку, то мой отчет показывает данные только между этими датами. пожалуйста, помогите мне..
ДБ sqlserver2005
заранее спасибо.
Срини

RAHUL(10217975)

В чем проблема? Попробуйте то, что я написал

Рейтинг:
0

OriginalGriff

Во-первых, не используйте текстовые поля: вместо этого используйте элемент управления календарем или DateTimePicker. Текстовые поля означают, что пользователи вводят то, что они хотят, что может быть не действительной датой (или даже близко к действительной дате). Элементы управления otehr позволяют им только выбирать "правильные" даты и избавляют вас от необходимости их проверять.

Затем просто используйте SQL SELECT:

SELECT * FROM MyTable WHERE MyDateColumn BETWEEN @StartDate AND @EndDate
Заполните даты с помощью параметризованного запроса и передайте объекты DateTime непосредственно из элементов управления.


sreenivashan

Привет.. Хорошо, я не использую текстовое поле для дат. и используйте datepicker, но мой вопрос таков : я новичок в разработке crystal Report. Я хочу знать, как получить данные между двумя датами. У меня есть два текстовых поля для from date и To date в FrmDate(форме). и поставьте одну кнопку для события clicke. если я даю две разные даты в два текстовых поля, а затем нажимаю эту кнопку, то мой отчет показывает данные только между этими датами. пожалуйста, помогите мне..
ДБ sqlserver2005
заранее спасибо.
Срини

OriginalGriff

Читал, что я сказал?