c# - 如何在类之间传递变量?
问题描述
我有一个“分成”两部分的单一表格。第一部分有“用户 ID”(文本框)、“安全问题”(组合)和“安全问题”(文本框)的答案。它有一个“提交按钮”,用于检查数据库是否匹配安全/答案。如果找到匹配项,则启用下面的第二部分。
第二部分有“新密码”和“确认密码”,以及“更改”按钮。
我想要实现的是验证上面“UserID”的安全问题和答案匹配。我能做到的。但是,我想将“用户 ID”传递给“更改”按钮的单击事件,所以我不必再次要求“用户 ID”,也不要为数据库中的每个人更改密码。
这是我的代码的一部分:
private void btnchange_Click(object sender, EventArgs e)
{
{
//How do I pass UserID from "Submit"?
if (txtnewpassword.Text == "")
{
MessageBox.Show("Please enter a new password...");
}
if (txtconfirmpassword.Text == "")
{
MessageBox.Show("Please confirm your new password...");
}
else
{
try
{
SqlConnection con = new SqlConnection(@"Data Source = (LocalDB)\MSSQLlocaldb; Initial Catalog = AdminAuthentication; Integrated Security = True");
con.Open();
if (txtnewpassword.Text == txtconfirmpassword.Text)
{
string query = " update UserRegistration set [Password]= '" + txtnewpassword.Text + "' where UserID = '" /*+pass USERID here?*/ + "'";
SqlCommand cmd = new SqlCommand(query, con);
cmd.ExecuteNonQuery();
MessageBox.Show("Password Succesfully Updated!");
txtconfirmpassword.Clear();
txtnewpassword.Clear();
txtuserid.Clear();
this.Hide();
Loginsystem ls = new Loginsystem();
ls.Show();
}
else
{
MessageBox.Show("The passwords do not match.Try again");
txtconfirmpassword.Clear();
txtnewpassword.Clear();
}
con.Close();
}
catch (Exception ex)
{
MessageBox.Show("Error Occured" + ex);
}
}
}
}
解决方案
Ciao,我会在持有 UserID 的类中引发一个事件。然后依赖类可以订阅该事件并将数据存储在将在btnchange_Click
函数中读取的属性中。
public delegate void UserIDHandler(int UserID);
public class UserIDClass
{
public event UserIDHandler UserIDEvent;
...
public void Submit(object sender, EventArgs)
{
// retrieve your UserID then
if(UserIDEvent!= null)
UserIDEvent(UserID);
}
}
public class BtnChangeClass
{
public int UserID_imported = -1;
UserIDClass yourObject = new UserIDClass();
public BtnChangeClass()
{
yourObject.UserIDEvent += new UserIDHandler(hadleUserIDEvent);
}
protected void hadleUserIDEvent(int UserID)
{
UserID_imported = UserID;
}
private void btnchange_Click(object sender, EventArgs e) {
//read UserID_imported
}
}
推荐阅读
- sql-server - Bcp 实用程序 - 如何导入 10 亿条记录。数据文件到 SQL 服务器
- python - Pandas 在读取格式错误的数据时不会引发异常
- python-3.x - Python等待消息的时间限制
- ios - 如何从特定的 UICollectionViewCell 中删除 firebase 子节点 - Swift
- spring-boot - 更改我的 Spring Boot 模板的默认位置会引发 404
- cgal - 三角面网格的参数化
- amazon-web-services - 如何将 Amazon 证书与在 EC2 服务器上运行的 neo4j 实例链接?
- c# - 如何在 Selenium C# (ChromeDriver) 中使用带有登录名和密码的代理
- c# - 将 Unity 游戏中的资源转储到文件中
- javascript - Ajax 加载点击的链接并淡出内容?