c# - 如何以另一种形式使用标签中的 user_id
问题描述
我正在尝试创建一个函数 GetUserID(),它返回用户 ID,我已将其插入标签中,以便我可以在其他形式中使用它。
但是当我尝试将标签转换为 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);
}
我一直认为必须有更好的方法来做到这一点,而不是将 UserID 存储在标签中,但我不确定如何。
解决方案
我将创建一个带有公共字段的公共类来存储 UserID。
例如。假设您在 int 变量中有 UserID,正如您所描述的那样。现在假设您创建了一个名为Common
defined 的公共静态类,其中包含一个名为 的 int 类型的公共静态字段ID
。
您现在可以将 UserID 存储在类的静态字段中:
Common.ID = UserID
稍后,当您想从其他表单访问 UserID 时,只需执行以下操作:
string UserID = Common.ID
轻松愉快。
当然,您不需要在单独的类中执行此操作......您的表单本身就是一个类,您可以在那里创建您的公共字段,并将其称为
Form1.UserID
或者无论原始表单的名称是您捕获 UserID 的位置...
推荐阅读
- javascript - 如何锁定范围组中的多个单元格,Excel - Web AddIns Office.js API
- c# - 通过 MEF 导入在子类中设置继承的属性
- amazon-web-services - 在私有子网中部署 lambda。创建 Lambda 函数时出错 (1):ValidationException 状态码:400,请求 id
- amazon-web-services - Aws 组织 - 将会员帐户移交给其他方
- javascript - 为什么不在 React 组件中使用全局变量
- r - 如何在 R markdown 中生成动态标题?
- java - 列表列表的元素为空,即使添加的项目不是
- python - django fileuploader 块方法没有按预期工作
- java - 应为 BEGIN_ARRAY,但在第 1 行第 1 列路径 $ 错误处为 STRING
- uwp - .NET 标准和平台目标