ВНУТРЕННЕЕ СОЕДИНЕНИЕ с Где условие не работает - PullRequest
0 голосов
/ 16 января 2019

У меня есть SQL-запрос в C # ASP.NET MVC, он хорошо работает без условия WHERE, но с условием WHERE он не работает.

Вот оператор SQL:

string strSQL = "SELECT u.USERID, u.NAME, io.CHECKTIME, io.CHECKTYPE, io.SENSORID 
                 FROM USERINFO u 
                 INNER JOIN CHECKINOUT io ON u.USERID = io.USERID 
                 WHERE u.NAME = " + conditionSearch.NAME;

С conditionSearch.NAME - это переменная из вида, я проверил, все в порядке со значением, которое нужно искать.

Не могли бы вы показать мне, что не так в этом WHERE состоянии? Спасибо тебе!

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Немедленным решением здесь было бы поместить имя в предложении WHERE в одинарные кавычки, чтобы сделать строковый литерал:

Привет, Тим, спасибо за ответ. Я пытался с точным именем иметь в БД с одинарных кавычек, но результат по-прежнему возвращать ноль.

о, но я попытался с вашим решением ('"+ conditionSearch.NAME +"' "), и оно отлично работает. Большое вам спасибо!

0 голосов
/ 16 января 2019

Непосредственным исправлением здесь было бы поместить имя в предложении WHERE внутри одинарных кавычек, чтобы сделать строковый литерал:

string strSQL = "SELECT u.USERID, u.NAME, io.CHECKTIME, io.CHECKTYPE, io.SENSORID
    FROM USERINFO u INNER JOIN CHECKINOUT io ON u.USERID = io.USERID
    WHERE u.NAME = '" + conditionSearch.NAME + "'";

Однако выполнение прямой конкатенации для формирования строки запроса SQL обычно является серьезной плохой практикой. Гораздо лучшим подходом было бы использовать подготовленное утверждение с заполнителем для имени. То есть используйте запрос, который выглядит примерно так:

SELECT u.USERID, u.NAME, io.CHECKTIME, io.CHECKTYPE, io.SENSORID
FROM USERINFO u
INNER JOIN CHECKINOUT io
    ON u.USERID = io.USERID
WHERE u.NAME = ?;

Тогда позвольте вашей базе данных беспокоиться о том, как правильно связать параметр имени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...