SQLite ищет пользователя в таблице - PullRequest
0 голосов
/ 29 апреля 2020
 // This returns a count of 1, so the table does exist, and I know the user exists becaue I have just added him in...
Int32 tableCount = database.Query(map, "SELECT * FROM sqlite_master WHERE type = 'table' AND name = 'UserTable'", ps).Count;

//but when I try this the count is 0....what am I doing wrong?
 Int32 tableCount2 = database.Query(map, "SELECT * FROM sqlite_master WHERE type = 'table' AND name = 'UserTable' AND NameOfUser = '" + personsName + "'", ps).Count;

t

пытается узнать, существует ли пользователь ... что я делаю не так?

1 Ответ

1 голос
/ 29 апреля 2020

SQL Инъекции

Сначала я хочу сказать, что этот код уязвим для SQL Инъекций,.

Почему запрос не работает?

Поскольку NameOfUser - это не столбец sqlite_master, а, я полагаю, столбец UserTable.

sqlite_master состоит из следующих столбцов:

type
name
tbl_name
rootpage
sql

Как я могу заставить его работать?

Int32 tableCount2 = database.Query(map, "SELECT * FROM UserTable WHERE NameOfUser = '" + personsName + "'", ps).Count;

Но, как уже было сказано, вам лучше использовать C# Подготовленные SQLite операторы для предотвращения SQL внедрения, проверьте это: C# Учебное пособие по SQLite и найдите «подготовленный»

Пожалуйста, пометьте как ответ, когда это сработало.

CU

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