#sql #vb.net #ms-access
#sql #vb.net #ms-access
Вопрос:
Я использую свой VB.Сетевая программа для запроса базы данных в MS Access. В базе данных у меня есть таблица, содержащая поле «question_start» (Дата / время).
Я хотел бы вернуть идентификаторы каждой записи, которые происходят в дату или после даты, которую я выбираю в своей программе VB.
Данные в таблице Access хранятся как дата / время в общем формате даты (например ’10/10/2016 15:48:01′).
В VB.NEt Я использую объект DateTimePicker для выбора даты.
Ниже приведен код, который я использую для возврата всех записей, имеющих начальную дату 10/10/2016 (10 октября 2016).
(Примечание 1: я удалил элемент time из этого конкретного поиска, поскольку мне не нужно, чтобы мои результаты зависели от времени здесь, но потребуются позже.)
Private Sub btnDateText_Click(sender As Object, e As EventArgs) Handles btnDateText.Click
Dim dt_QuestionDate As New DataTable()
dt_QuestionDate = getData("SELECT question_id
FROM tblQuestion
WHERE question_start => " amp; dtDateText.Value.ToString("dd-MM-yyyy") amp; ""
)
lstDateText.DataSource = dt_QuestionDate
lstDateText.DisplayMember = "question_id"
lstDateText.ValueMember = "question_id"
End Sub
** В моей базе данных есть записи, которые должны быть возвращены, но в настоящее время я не получаю никаких значений. Я не уверен, что именно так я написал предложение WHERE (я сделал WHERE с «=>», «>=», а также «=») но я не получаю записи с 10/10/2016.
Есть у кого-нибудь какие-нибудь идеи, пожалуйста? Я не знаю, связано ли это с простой ошибкой или с элементом time, который хранится в Access?
Комментарии:
1. Вам нужен оператор
>=
. Вы пробовали заключать дату в кавычки вот так:'10-10-2016'
?2. в предложении where вам, вероятно, нужно изменить question_start на
question_start.ToString()
, поскольку вы сделали компаратор строкой3. Меняет ли это на . toString(«дд/ ММ/гггг») поможет?
Ответ №1:
Вам необходимо правильное форматирование строкового выражения для значения даты:
WHERE question_start => #" amp; dtDateText.Value.ToString("yyyy'/'MM'/'dd") amp; "#"