Как использовать user_id из ярлыка в другой форме - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь создать функцию GetUserID (), которая возвращает идентификатор пользователя, который я вставил в метку, чтобы я мог использовать его в других формах.

Но когда я пытаюсь преобразовать метку в int32, метка всегда кажется пустой. Я думаю, из-за того, где функция размещена в моем коде.

См .:

private void Loginbtn_Click(object sender, EventArgs e)
    {
        var LoginFunction = new LoginFunction();

        var DataTable = new DataTable();

        DataTable = LoginFunction.Login(Usernametxt.Text.Trim(), Passwordtxt.Text.Trim());
        int UserID = Convert.ToInt32(DataTable.Rows[0]["USER_ID"]);

        if (DataTable.Rows.Count == 1)
        {
            CalculatorMain calculatorMain = new CalculatorMain();
            MainMenu mainMenu = new MainMenu();
            UserIDlbl.Text = Convert.ToString(UserID);
            MessageBox.Show("ID = " + UserID);

            this.Hide();
            mainMenu.Show();


        }
        else
        {
            MessageBox.Show("You entered the wrong username or password");
        }




    }
    public int GetUserID()
    {
        int UserID;


        if (Int32.TryParse(UserIDlbl.Text, out UserID))
        {
            UserID = Convert.ToInt32(UserIDlbl.Text);
        }
        else
        {
            MessageBox.Show("Error, Label for UserID could not be parsed");
        }

        return UserID;



    }

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

Вот код для вызова функции, который используется в отдельной форме.

private void WorkoutHistoryForm_Load(object sender, EventArgs e)
    {
        Login login = new Login();



        int UserId = login.GetUserID();


        this.sETSTableAdapter.Fill(this.gymDataSet.SETS, UserId);



    }

Я продолжаю думать, что должен быть лучший способ сделать это вместо сохранения идентификатора пользователя в метке, но я не уверен, как это сделать.

1 Ответ

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

Я бы создал открытый класс с открытым полем для хранения идентификатора пользователя.

Например.скажем, у вас есть UserID в переменной int, как вы описали.Теперь предположим, что вы создали открытый статический класс с именем Common, определенный с помощью открытого статического поля типа int с именем ID.

Теперь вы можете сохранить идентификатор пользователя в статическом поле класса:

Common.ID = UserID

Позже, когда вы захотите получить доступ к UserID из какой-либо другой формы, просто сделайте это:

string UserID = Common.ID

Easy peasey.

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

Form1.UserID

Или как бы там ни было имя вашей первоначальной формы, где вы захватили ID пользователя ...

...