Будь осторожен здесь.Я вижу ошибки в запросе.
Сначала, скажем, я ищу по SID
и оставляю поле имени пустым.Это приведет к выражению наподобие этого:
WHERE FName LIKE '%%' OR SID LIKE '%1234%'
Это условие OR
, где левая сторона будет соответствовать что угодно . всегда вернет всех записей.Я также предлагаю сделать поиск SID точным соответствием.Если у вас есть идентификационный номер студента, у вас есть целый идентификационный номер.
Во-вторых, SID
, скорее всего, числовое / целочисленное поле.ASP.Net должна иметь возможность преобразовывать ваш SID
ввод в число, даже если этот ввод является пустой строкой.Вот откуда приходит ваше сообщение об ошибке.
Мое предложение здесь - установить ваш SQL CommandText для источника данных во время обратной передачи, для любого события, которое вы обрабатываете для запуска этого запроса.Создайте строку так, чтобы она включала только условие для полей, которые были фактически предоставлены пользователем. Все еще пользовательские запросы для этого.