C# 如何在登录后在下一个表单的标签中显示欢迎用户名?

C# 如何在登录后在下一个表单的标签中显示欢迎用户名?,c#,windows,forms,login,C#,Windows,Forms,Login,下面是我的登录表单代码。等等,如果我以Jack的身份登录,下一个表单将在label1中显示Jack。如果以david登录,则下一个for将在label1中显示david。就像在web表单中使用会话一样 按钮登录方法 private void btnLogin_Click(object sender, EventArgs e) { //retrieve connection information info from App.config string strConnectionS

下面是我的登录表单代码。等等,如果我以Jack的身份登录,下一个表单将在label1中显示Jack。如果以david登录,则下一个for将在label1中显示david。就像在web表单中使用会话一样

按钮登录方法

private void btnLogin_Click(object sender, EventArgs e)
{
    //retrieve connection information info from App.config
    string strConnectionString = 
             ConfigurationManager.ConnectionStrings["sacpConnection"].ConnectionString;
    //STEP 1: Create connection
    SqlConnection myConnect = new SqlConnection(strConnectionString);
    //STEP 2: Create command
    string strCommandtext = "SELECT dUsername, dPassword from DOCTOR";
    // Add a WHERE Clause to SQL statement
    strCommandtext += "   WHERE dUsername=@dname AND dPassword=@dpwd;";
    SqlCommand cmd = new SqlCommand(strCommandtext, myConnect);
    cmd.Parameters.AddWithValue("@dname", textUsername.Text);
    cmd.Parameters.AddWithValue("@dpwd", txtPassword.Text);

    try {            
        myConnect.Open(); // STEP 3: open connection 
        SqlDataReader reader = cmd.ExecuteReader(); // retrieve data 
        while (reader.Read()) //For Doctor             
        {
            if (MessageBox.Show("Login Successful") == DialogResult.OK)
            {
                timer1.Enabled = true;
                return;
            }
        }

        //STEP 5: close connection
        reader.Close();
        MessageBox.Show("Invalid username or password");
    }
    catch (SqlException ex) { }
    finally {
        //STEP 5: close connection
        myConnect.Close();
    }
}

如果只将名称传递给下一个表单是您的目标,那么您可以为新表单创建一个构造函数,并将该值传递给构造函数调用本身。 然后可以在新表单中使用此值。
例如

Form2 frm2 = new Form2("LoginName");
然后可以在Form2的custructor中使用它

public Form2(string loginname)
{
_loginname=loginname;
}
然后可将其作为

   Label1.Text=_loginname;
否则,您也可以选择使用静态变量。

如果您需要代码方面的帮助,请告诉我。

将form2的标签公开,并在form1上为该标签指定值
或者第二种方法u可以给出form2.name=username(从数据库中检索到),然后在form2中获得名称。。与.Name类似,您可以考虑添加一个公共类,并将公共静态字符串声明为其成员,如下所示

公共类UserDisplayName
{
公共静态字符串displayName;
}

现在,在显示“登录成功”消息的地方,您现在将用户名设置为

UserDisplayName.displayName=textUsername.Text

要在表单上显示用户名,请像

label1.Text=UserDisplayName.displayName


因此,它现在将设置您的用户名。使用它的好处是,您现在可以在整个应用程序中的所有窗体上使用这个
UserDisplayName.displayName
,这样您就不必在所有窗体上重新声明和设置变量。其基本思想是c#中没有全局变量的概念。全局变量的用途由类的静态数据成员提供。

displayusername
表单中添加属性
UserName
,设置用户名,然后显示它的属性是什么@斯利拉姆Sakthivel@Jordjmax很幼稚的问题,继续学习:)。属性类似于字段,它提供封装。您将使用
表单。Text
Text
是一个属性。我看不出问题有什么不同,或者-可能重复。可能重复对不起,我不知道怎么做,可以给我看一些代码吗@维克拉姆·沙迈,我正在努力。Vignesh Kumar关于这一点的说明(现在通过创建Form2对象在FormOne上显示Form2,我们可以访问全局veriable并为其赋值)我是否改为在私有的void timer1_Tick上执行?因为当前用于我加载displayusername的表单代码位于timer1\u勾中@维涅什Kumar@Jordjmax,您可以将值传递给构造函数,无论您在何处创建表单的新实例。若要公开标签,请执行以下操作。信息技术属性发生了什么变化?是的,完全可以通过单击鼠标右键转到属性