如何在下一页显示用户登录名

本文关键字:用户 登录 显示 一页 | 更新日期: 2023-09-27 18:26:12

打开应用程序时,我的第一个屏幕是登录名。在你登录后,我还有10个页面。我只想知道登录所有页面的人的名字,比如,(欢迎,用户!)。我不知道如何做这个

这是我的代码:

private void btnLogin_Click(object sender, RoutedEventArgs e)
{
    txtUsername.IsEnabled = true;
    txtPassword.IsEnabled = true;
    txtMessage.Text = "";
    txtMessage.IsEnabled = false;
    try
    {
        SqlConnection oConnection = new SqlConnection(_ConnectionString);
        SqlCommand oCommand = new SqlCommand("Select  * from register where Username = '" + txtUsername.Text + "' AND Password = '" + txtPassword.Password + "'", oConnection);
        if (oConnection.State == ConnectionState.Closed)
            oConnection.Open();
        SqlDataAdapter adapter = new SqlDataAdapter();
        SqlDataReader reader = oCommand.ExecuteReader();
        string Username = null;
        if (reader.HasRows)
        {
            username = txtUsername.Text;
            oConnection.Close();
            NavigationService _Nav = NavigationService.GetNavigationService(this);
            _Nav.Navigate(new Uri("Menuxaml.xaml", UriKind.RelativeOrAbsolute));
        }
        else if (txtUsername.Text.Trim().Length == 0)
            Errormessage.Text = "Please enter your Username";
        else if (txtPassword.Password.Trim().Length == 0)
            Errormessage.Text = "Please enter your Password";
        else
        {
            Errormessage.Text = "Invalid Username or Password!";
            txtPassword.Password = "";
            txtUsername.Text = "";
        }
        oConnection.Close();
    }
}

如何在下一页显示用户登录名

如果您在所有10个页面中都需要用户名,我建议您将其添加到应用程序资源中,并从整个应用程序中访问。

让我教你怎么做。

   Application.Current.Resources.Add("UserName",txtUsername.Text);

然后在您的第二个页面上使用此资源设置您的标签。

lbl.Content = Application.Current.Resources["UserName"];

您可以通过构造函数或第二页公开的公共方法将值传递给第二页。

详细信息如下:

第1页:

public partial class Page1 : Page
{
    public Page1()
    {
        InitializeComponent();
    }
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        Page2 p = new Page2(2);
        this.NavigationService.Navigate(p);
    }
}

第2页:

public partial class Page2 : Page
{
    int valueFromPage1;
    public Page2()
    {
        InitializeComponent();
    }
    public Page2(int val):this()
    {
        valueFromPage1 = val;
        this.Loaded += new RoutedEventHandler(Page2_Loaded);
    }
    void Page2_Loaded(object sender, RoutedEventArgs e)
    {
        lbl.Content = "Value passed from page1 is: " + valueFromPage1;
    }
}

如果你还有什么问题,请告诉我。

如果你想使用相同的结构,那么

page.NavigationService.Navigate(new Uri("/Views/Page.xaml?parameter=test", UriKind.Relative));

目的地页面:

   string parameter = string.Empty;
    if (NavigationContext.QueryString.TryGetValue("parameter", out parameter)) 
{
        this.label.Text = parameter;
    }