Мой запрос на двух различных таблиц пользовательской таблицы и табличные зона создает проблему:Регистрация запроса VB.net DataReader
cmd.CommandText = "SELECT zone_name, zone_difference FROM user_master INNER JOIN zones on user_master.zone_id = zones.ID WHERE user_master.uname LIKE " & """" & usr_gl & """"
Dim reader_q As OleDbDataReader
reader_q = cmd.ExecuteReader()
Здесь имя зоны и разностные из таблицы зон и zone_id (от клиента) и ID (зоны). Также имя пользователя (uname) поступает извне как переменная usr_gl, например «admin»
Это не значение, заданное для одного или двух параметров. Я проверил все столбцы и данные таблицы. Тот же запрос выполняется независимо от базы данных Access.
Есть ли что-то не так, что я выполняю здесь?
Возможно, значение времени выполнения 'usr_gl' вводит элемент синтаксиса параметра в запрос и путает парсер запросов? Использование конкатенации строк для построения запросов к базе данных довольно опасно, даже если вы считаете, что имеете контроль над входными значениями. Сохраняется ли проблема при устранении уязвимости SQL-инъекции и использовании параметризованных запросов? – David