Указанное в сообщении об ошибке criteria expression
не относится к выводу ArithmeticScore
. Речь идет о предложении WHERE
. То, что у вас есть для todaysdate
, не соответствует тому, что база данных ожидает для столбца DateAscending
.
Поскольку OleDb является универсальным c провайдером, мы точно не знаем, какую базу данных вы используете. Вы говорите, но большинство баз данных имеют способ получить текущее значение даты в SQL: getdate()
, current_timestamp
, et c. Использование этого механизма, скорее всего, разрешит конфликт, и в первую очередь для этого не нужно использовать конкатенацию строк.
Dim sql As String = "SELECT ArithmeticScore FROM " & tablename & " WHERE DateAscending = Date()"
Другой способ исправить это с помощью правильных параметризованных запросов , что вы должны делать в любом случае. НИКОГДА нормально использовать конкатенацию строк для замены данных в запросе SQL, и если вам нужно подумать о том, как отформатировать строку даты или числа для использования в команде SQL, вы почти всегда делаем что-то очень неправильное.