#sql #asp.net
#sql #asp.net
Вопрос:
Мне нужна помощь с моей цитатой из инструкции SQL, кто-нибудь, пожалуйста, может мне помочь?
Все переменные являются целочисленными
Первый из них:
var sqlSearch = "SELECT * FROM Profiles WHERE BodyType=" " bodyType " OR Education=" " education " OR Eyes =" " eyes " OR Hairs=" " hairs " OR Heights =" " heights " OR Religion =" "religion "";
Вторая — это :
sql = "INSERT INTO Profiles (MemberID, Description, Religion, HairColor, Eye, Education, Height, BodyType) VALUES (" Session("MemberID") ", " description ", " religion ", " hairs ", " eyes ", " education ", " heights ", " bodyType ")";
Комментарии:
1. попробуйте это msdn.microsoft.com/en-us/library/dn961160 (v = против 140).aspx
2. Вы создаете эту строку на c # / vb или на SQL? для конкатинации в MySQL вы должны использовать функцию CONCAT, например: var sqlSearch = SELECT CONCAT(‘ВЫБРАТЬ * ИЗ профилей, ГДЕ BodyType=’, BodyType ‘ ИЛИ Education=’, образование’ ИЛИ Eyes =’, глаза’ ИЛИ Hairs=’, волосы’ ИЛИ Heights =’, высоты ‘ ИЛИ Religion =’, религия);
3. Они являются целыми числами, а не строкой. Я использую их в классическом asp с базой данных access
4. Под строкой я имел в виду инструкцию SQL, которая хранится в переменной sqlSearch. Я только что понял, что это, вероятно, создается до передачи в sql .. в этом случае игнорируйте мой предыдущий комментарий..
5. Предупреждение о внедрении SQL — вам не следует объединять ваши инструкции SQL — вместо этого используйте параметризованные запросы , чтобы избежать внедрения SQL
Ответ №1:
var sqlSearch = "SELECT * FROM Profiles WHERE BodyType='" bodyType "' OR Education='" education "' OR Eyes ='" eyes "' OR Hairs ='" hairs "' OR Heights ='" heights "' OR Religion ='" religion "'";
sql = "INSERT INTO Profiles (MemberID, Description, Religion, HairColor, Eye, Education, Height, BodyType) VALUES ('" Session("MemberID") "', '" description "', '" religion "', '" hairs "', '" eyes "', '" education "', '" heights "', '" bodyType "')";
Комментарии:
1. использование двойных кавычек для переменных, разве это не говорит о том, что они являются строковыми? Они являются int в моей базе данных
2. если вы используете двойные кавычки, вам придется использовать двойную вставку «double quote» в T-SQL, поэтому одинарная кавычка — лучшее решение, если это int, вам не нужна одинарная кавычка.
3. Извините, я имел в виду одинарную кавычку. Разве мы не используем одинарные кавычки, когда это строка? Но нам не обязательно использовать их, когда это целое число?
4. Да, если это целое число, нам не нужно использовать одинарные кавычки, хотя это работает.
5. Это должно сработать, за исключением того, что ваша строка содержит одинарную кавычку, если в этом случае вам нужно заменить ее с помощью одинарной кавычки. Заменить(» ‘ «,» ‘ ‘ «)