登录后如何在下一个表格的标签上显示欢迎用户名?

时间:2014-01-04 11:01:10

标签: c# windows forms login username

以下是我的登录表单代码。等等,如果我以Jack身份登录,下一个表格将在label1中显示Jack。如果登录为david,那么下一个将在label1中显示david。就像在网络表单中使用会话一样。

按钮登录方法

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();
    }
}

Login form display username in next form displayusername form error

3 个答案:

答案 0 :(得分:2)

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

Form2 frm2 = new Form2("LoginName");

然后可以在Form2的custructor中使用它。

public Form2(string loginname)
{
_loginname=loginname;
}

然后可以在form_load中使用它作为

   Label1.Text=_loginname;

否则,使用静态变量也是一种选择 如果您需要有关代码的帮助,请告诉我。

答案 1 :(得分:1)

您可以考虑添加公共类并将公共静态字符串声明为其成员,如下所示。

public class UserDisplayName { public static string displayName; }

现在,您将在哪里展示“登录成功”'消息,您现在将用户名设置为

UserDisplayName.displayName = textUsername.Text;

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

label1.Text = UserDisplayName.displayName;

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

答案 2 :(得分:0)

将form2的标签设为public,并在form1上为该标签指定值 或者第二种方法你可以给出form2.name = username(你从数据库中检索)和form2获取名称..如 this.Name