Запрос логина и пароля C# + PostgreSQL

Рейтинг: 0Ответов: 1Опубликовано: 04.04.2023

Хочу сделать форму авторизации в приложении. Есть 2 textBox и кнопка войти. По нажатию на кнопку войти происходит запрос в бд по наличию введенных данных. Но в моём коде блок if выполняется независимо от того, чтобы я не вводил в текстбоксы. Застрял надолго на этом моменте. Может кто-то подсказать, в какую сторону копать ? Я только начинаю работать с базами данных и слегка запутался.

var login = authWindows.loginBox.Text;
var pass = authWindows.passBox.Text;
long rowsCount = 0;

using (NpgsqlConnection connection = new NpgsqlConnection("Server=localhost;Port=5432;Database=postgres;Username=postgres;Password=123456"))
{
    connection.Open();              
    NpgsqlCommand command = new NpgsqlCommand("SELECT COUNT(*) FROM admin.users WHERE login = @login AND pass = @pass", connection);
    command.Parameters.Add("@login", NpgsqlDbType.Text).Value = login;
    command.Parameters.Add("@pass", NpgsqlDbType.Text).Value = pass;            
    rowsCount = (long)command.ExecuteScalar();
    if (rowsCount > 0)
    {
        authWindows.Close();
        workSozWindow.Show();
    }
    else
    {
        MessageBox.Show("Пользователь не найден");
    }
}

Ответы

▲ 0Принят

Разобрался. Проблема была в этих строках:

authWindows authw = new authWindows();

string login = authw.loginBox.Text.Trim();
string password = authw.passBox.Text.Trim();

Я получается создавал новую невидимую форму и вследствии чего поля ввода были пустыми. В итоге я избавился от переменной authw и передал login и password в виде параметров в метод authWithDb и всё заработало.

Всем спасибо за помощь!