Ошибка, которую вы получаете
"Произошло необработанное исключение типа System.FormatException в
mscorlib.dll
Дополнительная информация: входная строка была в неправильном формате. "
Это потому, что вы выбираете строковое значение
cmd.CommandText = "SELECT **UserPassword**, UserMail FROM Users WHERE ....
А затем вы пытаетесь преобразовать его в Int
correct = Convert.**ToInt32**(cmd.ExecuteScalar());
ExecuteScalar
Выполняет запрос и возвращает первый столбец первой строки в наборе результатов, возвращенных запросом. Дополнительные столбцы или строки игнорируются.
Итак, вы пытаетесь преобразовать значение пароля в Int32, это выдает ошибку ...
Если вы используете
cmd.CommandText = "SELECT Count(*) FROM Users WHERE ....
Остальная часть вашего кода будет работать, так как это условие просто проверяет, что правильное значение больше 0
sqlConnection1.Open();
int correct = 0;
correct = Convert.ToInt32(cmd.ExecuteScalar());
sqlConnection1.Close();
if(correct <= 0)
Однако вы должны знать о риске SQL-инъекций и других плохих практиках, но это не в тему