Получите доступ к файлу с URL и разархивируйте с помощью Express

Этот подход неверен.

Чтобы дата была между двумя интервальными датами, ей не нужно иметь число дней между двумя датами, например. (псевдокод)

  • date = May-25-2012; startDate = March-15-2012, endDate = June-01-2012
  • date явно находится между startDate и endDate, но
  • day(date) равен 25 , который не находится между day(startDate) = 15 и day(endDate) = 1
  • больше, так как 15 больше 1, между ними нет чисел, поэтому условие всегда будет false

Аналогичный пример может быть сделан для месячной части даты (например, date = May-25-2012; startDate = September-15-2010, endDate = Match-01-2015)

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


Чтобы сделать дату из текстовых полей в VB

Dim startDate = new DateTime( 
      Convert.ToInt32(cbosyear.Text), 
      Convert.ToInt32(cbosmonth.Text), 
      Convert.ToInt32(cbosday.Text))

Обратите внимание, что это не произойдет, если пользователь войдет , например «некоторый текст» для значения года. Для этого вам нужно добавить некоторые проверки данных.

Чтобы сделать datetime из частей на SQL Server, посмотрите здесь , объясняется несколько методов.

Кроме того, вы должны всегда избегать просто вставки значений в строку sql, которая запрашивает проблемы с sql-инъекциями. Вы должны сделать что-то вроде этого:

Dim command = new SqlCommand()
command.CommandText = "SELECT .... FROM tblagents where DATEFROMPARTS(year, month, day) between @startDate AND @endDate"
command.Parameters.AddWithValue("@startDate", startDate)
command.Parameters.AddWithValue("@endDate", endDate)

0
задан karel 26 February 2019 в 06:42
поделиться