Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 返回上一个表单,使用C中相同的数据_C#_Winforms - Fatal编程技术网

C# 返回上一个表单,使用C中相同的数据

C# 返回上一个表单,使用C中相同的数据,c#,winforms,C#,Winforms,我正在学习使用c创建一个窗口应用程序。当前我面临的一个问题是,当我从表单2重新运行到表单1时,从数据库获取的数据就消失了。我怎样才能回到上一页而不丢失表格1上的数据 私有void AdminMain\u加载对象发送方,事件参数e { 康涅狄格开放大学; string getInfo=从StaffID='+Username+'的staff中选择全名; MySqlCommand cmd=newmysqlcommandgetinfo,conn; MySqlDataReader mdr=cmd.Exec

我正在学习使用c创建一个窗口应用程序。当前我面临的一个问题是,当我从表单2重新运行到表单1时,从数据库获取的数据就消失了。我怎样才能回到上一页而不丢失表格1上的数据

私有void AdminMain\u加载对象发送方,事件参数e { 康涅狄格开放大学; string getInfo=从StaffID='+Username+'的staff中选择全名; MySqlCommand cmd=newmysqlcommandgetinfo,conn; MySqlDataReader mdr=cmd.ExecuteReader; 如果mdr.Read { userName.Text=mdr[FullName].ToString; } } 这是我的表格1,它将显示用户名。但是,当我使用下面的代码返回到表单1时,表单1中的数据就消失了

私有无效Backptn_链接ClickedObject发送方、链接标签链接ClickedEventargs e { AdminMain am=新的AdminMain; am.ShowDialog; 这个。隐藏; } 返回表单1时,如何将数据保留在表单1中

更新: 我的代码如何在form1中打开form2

private void profileBtn_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
        MyProfileAdmin pf = new MyProfileAdmin();
        pf.getInformation(Username.ToString());
        this.Hide();
        pf.ShowDialog();
    }
这是我在form2上尝试返回form1的代码

private void backBtn_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
        this.Close();
    }
如果使用ShowDialog打开Form2,Form1仍将保持打开状态,并将在Form2关闭后继续

因此,使用此代码关闭Form2

private void backBtn_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    this.Close(); // Close, not just hide
}
要在显示Form2时隐藏Form1,请执行以下操作:

private void profileBtn_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    MyProfileAdmin pf = new MyProfileAdmin();
    pf.getInformation(Username.ToString());

    this.Hide(); 
    try
    {
        pf.ShowDialog();
    }
    finally
    {
        this.Show();
    }
}

我们使用try/finally确保在显示另一个表单时出现异常时显示第一个表单。

您的代码不会返回,它会打开一个全新的表单。鉴于ADO.NET代码存在漏洞,这将导致与数据库的另一个打开连接。请向代码演示如何打开form2ya,我可以知道如何使其返回到以前的表单而不丢失以前表单上的数据吗?以前的表单是什么?如果表单仍然存在,只需显示它或取消隐藏它。如果没有-显示其他窗体时不要关闭它。如果第二个窗体显示在第一个窗体上,请关闭第二个窗体。也不要使用全局连接对象。连接应该是短暂的,这就是为什么它们总是在使用块中声明。与您的问题无关,但是。。。当工作人员被称为O'Donell时会发生什么?Thx,当form1没有隐藏时它会工作。但我想要的是在form2打开后隐藏form1,并在单击form 2时返回form1。@AxenWong我已经更新了回答我的朋友,它可以工作了。tq u somuch@AxenWong请考虑修复SQL注入错误