Как я могу проверить, существует ли что-то в базе данных MySQL с помощью int, или есть какие-нибудь альтернативы? - PullRequest
1 голос
/ 30 марта 2019

Я пытаюсь проверить, существует ли HWID пользователя в моей таблице «users» в базе данных mysql при попытке входа в систему.И если он существует, сделайте еще одну проверку.Однако я получаю сообщение об ошибке «У вас есть ошибка в синтаксисе SQL; проверьте, что руководство соответствует версии вашего сервера MySQL ...» и так далее.Кажется, в синтаксисе нет ошибок.Я думаю, что проблема будет в части.Я не уверен, поэтому мне нужна ваша помощь!SQL Syntax Error Screenshot on imgur

Я пытался найти это в Google и выполнить поиск по stackoverflow (здесь).Я не нашел ответа на мою «актуальную» проблему.Я попытался использовать логическое значение вместо int.

MySqlCommand hwid = con.CreateCommand();
                hwid.CommandType = CommandType.Text;
                hwid.CommandText = "SELECT COUNT * FROM users where hwid='"+leet+"' AND username='"+textBox1.Text+"'";
                hwid.Parameters.AddWithValue("hwid", leet);
                hwid.Parameters.AddWithValue("username", textBox1.Text);
                int hwidCheck1 = hwid.ExecuteNonQuery();
                if ((int)hwidCheck1 > 0)

Я хочу, чтобы он проверил, находится ли hwid в базе данных, и продолжаю следующую проверку.

1 Ответ

0 голосов
/ 30 марта 2019

Вы пропускаете (*) в вашем sql.

Это должно быть примерно так:

SELECT COUNT(*) FROM users where hwid='whatever' AND username='someuser'

Это именно то, что говорит вам отладчик, что-то не так сСинтаксис SQL.

Еще одна вещь, которую я видел, чтобы проверить результат подсчета, вам нужно немного изменить свою логику.

с этого:

int hwidCheck1 = hwid.ExecuteNonQuery();
if ((int) hwidCheck1 > 0)

на это:

int hwidCheck1 = int.Parse(hwid.ExecuteScalar().ToString());
if (hwidCheck1 > 0)
...