Не заполняется TextBox

У меня есть приложения WinForms. В нем после прохождения авторизации открывается форма меню, в которой пункт "Настройки". В зависимости от роли открываются разные возможности в настройках. Мне нужно, чтобы при выборе пользователя в comboBox автоматически заполнялись поля textBox. Но сейчас при выборе пользователя из выпадающего списка они не заволняются.

Помогите исправить это. Ниже код формы настроек:

    public partial class FormSettingsAdmin : Form
{
    public FormSettingsAdmin()
    {
        InitializeComponent();
    }

    private void FormSettingsAdmin_Load(object sender, EventArgs e)
    {
        LoadUserList();
        LoadRoleList();
    }

    private void LoadUserList()
    {
        string query = "SELECT Username FROM Users";
        DataTable usersTable = DataBase.ExecuteQuery(query);

        comboBox_ChangeUser.Items.Clear();

        foreach (DataRow row in usersTable.Rows)
        {
            comboBox_ChangeUser.Items.Add(row["Username"].ToString());
        }
    }

    private void LoadRoleList()
    {
        string query = "SELECT NameRole FROM RoleUsers";
        DataTable rolesTable = DataBase.ExecuteQuery(query);

        comboBox_RoleSettings.Items.Clear();

        foreach (DataRow row in rolesTable.Rows)
        {
            comboBox_RoleSettings.Items.Add(row["NameRole"].ToString());
        }
    }

    private void comboBox_ChangeUser_SelectedIndexChanged(object sender, EventArgs e)
    {
        string selectedUsername = comboBox_ChangeUser.SelectedItem.ToString();
        LoadUserDetails(selectedUsername);
    }

    private void LoadUserDetails(string username)
    {
        string query = @"
SELECT u.Name, u.Email, u.PhoneNumber, u.Username, r.NameRole
FROM Users u
INNER JOIN UserAndRoles ur ON u.id = ur.idUser
INNER JOIN RoleUsers r ON ur.idRole = r.id
WHERE u.Username = @username";

        using (SqlConnection connection = new SqlConnection(DataBase.ConnectionString))
        using (SqlCommand command = new SqlCommand(query, connection))
        {
            command.Parameters.AddWithValue("@username", username);

            connection.Open();
            SqlDataReader reader = command.ExecuteReader();

            if (reader.Read())
            {
                SetUserName(reader["Name"].ToString());
                SetUserEmail(reader["Email"].ToString());
                SetUserPhoneNumber(reader["PhoneNumber"].ToString());
                SetUserLogin(reader["Username"].ToString());
                SetUserRole(reader["NameRole"].ToString());

                
            }
            else
            {
                MessageBox.Show("Пользователь не найден или данные не возвращаются.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }

    private void SetUserName(string name)
    {
        textBox_NameUserSettings.Text = name;
    }

    private void SetUserEmail(string email)
    {
        textBoxEmailSettings.Text = email;
    }

    private void SetUserPhoneNumber(string phoneNumber)
    {
        textBoxPhoneNumberSettings.Text = phoneNumber;
    }

    private void SetUserLogin(string login)
    {
        textBoxLoginSettings.Text = login;
    }

    private void SetUserRole(string role)
    {
        comboBox_RoleSettings.SelectedItem = role;
    }

    private void button_SaveSettings_Click(object sender, EventArgs e)
    {
        string username = comboBox_ChangeUser.SelectedItem.ToString();
        string newRole = comboBox_RoleSettings.SelectedItem.ToString();

        string query = @"
    UPDATE ur
    SET ur.idRole = (SELECT id FROM RoleUsers WHERE NameRole = @role)
    FROM UserAndRoles ur
    INNER JOIN Users u ON ur.idUser = u.id
    WHERE u.Username = @username";

        using (SqlConnection connection = new SqlConnection(DataBase.ConnectionString))
        using (SqlCommand command = new SqlCommand(query, connection))
        {
            command.Parameters.AddWithValue("@role", newRole);
            command.Parameters.AddWithValue("@username", username);

            connection.Open();
            command.ExecuteNonQuery();

            MessageBox.Show("Роль пользователя успешно обновлена.", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }

    private void button_ExitSettings_Click(object sender, EventArgs e)
    {
        this.Close();
    }
}

Фото формы

Форма настроек


Ответы (0 шт):