Это угроза безопасности для составления строки SQL с использованием формы ввода строки HTTP-запроса.Это открывает вам до атак с использованием SQL-инъекций .
Похоже, ваш код будет работать нормально без какого-либо кода.Вы уже добавили параметр в свой источник данных, который будет захватывать требуемое значение из строки запроса.Использование параметра для этой цели защищает вас от внедрения SQL.Возможно, вы захотите добавить значение по умолчанию к параметру в объявлении SQLDataSource.
Я бы определенно удалил весь ваш код и посмотрел, решит ли это вашу проблему.
(Изменить): Комуответьте на исходный вопрос: причина, по которой вы получаете ошибку «Несоответствие типов данных в выражении критериев», заключается в том, что столбец upc
в вашей базе данных является строковым типом (вероятно, varchar
).Если вы собираетесь создать жестко запрограммированную строку SQL со сравнением со столбцом upc, вы должны поместить одинарные кавычки вокруг значения, которое вы используете для сравнения (подумайте о синтаксисе SQL-запроса).Поскольку вы не включили кавычки, интерпретатор SQL не распознает значение как строку.
Я должен подчеркнуть, что я НЕ рекомендую использовать жестко закодированные значения в вашем SQL.Пожалуйста, помните о риске безопасности SQL-инъекций.