2014-10-10 38 views
0

當您打開應用程序時,我有一個登錄名作爲我的第一個屏幕。我登錄後還有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(); 
    } 
} 
+0

您正在WPF中開發? – vallabha 2014-10-10 09:43:48

+0

是的,我正在開發WPF – 2014-10-10 09:46:11

+0

您的項目是否具有母版頁結構? – vallabha 2014-10-10 09:49:26

回答

2

如果您需要在所有的10個頁面的用戶名,我建議你在應用程序添加此資源並從整個應用程序訪問它。

讓我告訴你如何做到這一點。

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

然後在您的第二頁上使用此資源來設置您的標籤。

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

謝謝....這個工程沒有任何太多的編碼 – 2014-10-10 11:27:21

+0

如果它的工作,請將此標記爲答案 – jadavparesh06 2014-10-10 11:28:07

+0

我該如何標記。這是一個有點新.. – 2014-10-10 12:03:27

0

你可以通過構造函數或第二頁中公開的公共方法傳遞值到第二頁。

這裏的細節:

第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; 
    } 
+0

我必須改變我導航到另一頁的方式嗎?看看我的編碼 – 2014-10-10 10:01:01

+0

我沒有得到它的工作..感謝您的幫助。我使用了jadavparesh06的例子,並且工作正常。 – 2014-10-10 11:27:36

相關問題