Как определить, что одно значение поля даты позже/больше, чем другое поле даты?
У меня есть одно текстовое поле(отображает результат подсчета), одна кнопка(выполняет подсчет) и два DateTimePickers(для периода дат от и до) в форме. Я использую базу данных MS Access для своей программы с двумя полями дат(date1 и date2). Что я хочу, так это подсчитать, сколько записей датировано(даты даны из datetimepickerfrom и datetimepickerto). Подсчет ведется с условием типа: Если date2 больше или позже date1, то подсчет будет основываться на date2, иначе на date1. Любое предложение или изменение в моем коде высоко ценится.
Что я уже пробовал:
Это мой код, но он приводит к ошибке:"элемент не может быть найден в коллекции, соответствующей запрошенному имени или порядковому номеру."
countingconnection() countrec = New ADODB.Recordset With countrec If .Fields("Date2").Value > .Fields("Date1").Value Then .Open("select count(*) as count2 from Docstable where Date2 >=#" & DateTimePickerfrom.Value.Date & "# and Date2 <=#" & DateTimePickerto.Value.Date & "#", countcon, 2, 3) textbox1.Text = .Fields("count2").Value .Close() else .Open("select count(*) as count1 from Docstable where Date1 >=#" & DateTimePickerfrom.Value.Date & "# and Date1 <=#" & DateTimePickerto.Value.Date & "#", countcon, 2, 3) textbox1.Text = .Fields("count1").Value .Close() end if End With
Richard Deeming
Почему вы все еще используете давно умершую библиотеку ADODB в приложении .NET? ADO.NET он существует уже почти 20 лет и гораздо лучше и проще в использовании.
Вы также должны использовать параметры, а не пытаться вставить значения параметров непосредственно в строку запроса. В данном конкретном случае вы, вероятно, в порядке, но использование конкатенации строк может и приведет к SQL-инъекция[^] факторы уязвимости.