Итак, я делаю небольшое приложение для своей компании, позволяя пользователям входить в систему и получать доступ к определенным данным, однако на стороне сервера, которая запрашивает базу данных, MySqlDataReader не читает, как я указал в следующий код:MySqlDataReader не читает
public string HandleLogin(string uname, string pwd)
{
MySqlDataReader READER;
int count = 0;
int clearance = 0;
if (uname == "" || pwd == "")
return "";
CONN = new MySqlConnection();
CONN.ConnectionString = Config.CONNSTRING;
string query = "select * from members where username='" + uname + "' and password='" + pwd + "'";
try
{
CONN.Open();
COMMAND = new MySqlCommand(query, CONN);
READER = COMMAND.ExecuteReader();
while(READER.Read())
{
count = count + 1; //<-- this should happen, but it doesnt
if (count == 1)
clearance = READER.GetInt32("clearance");
else
return "";
}
if (count == 1)
return Convert.ToString(clearance);
else
return "";
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
return "";
}
finally
{
CONN.Dispose();
}
}
Я уверен, что он должен прочитать 1 строку, задавая количество строк он нашел, сказал он 0, но я втройне проверил все значения и они совпадают со значениями базы данных точно, но он читает НЕТ строки для запроса. Это может быть очень глупая ошибка, но я не могу найти проблему.
Распечатайте и подтвердите правильность текста в sql. Найдите любые пробелы внутри переменных uname/pwd. – RajN
Вы проверили, открыто ли соединение? – Clock
@RajNagalingam Это правильно, @ devlincarnate Есть, но пароль хеширован в базе данных и до того, как сервер получит его, и @ SomeUser hmmm спасибо, я обязательно посмотрю на него –