2014-10-10 5 views
0

응용 프로그램을 열 때 첫 화면으로 로그인했습니다. 로그인 한 후 10 페이지가 더 있습니다. 원하는 모든 것은 (Welcome, User!)처럼 모든 페이지에 로그인 한 사람의 이름입니다.다음 페이지에 사용자 로그인 이름을 표시하는 방법

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

+0

예 WPF로 개발 중입니다. –

+0

프로젝트에 마스터 페이지 구조가 있습니까? – vallabha

답변

2

, 나는 응용 프로그램이를 추가 할 제안 리소스에 액세스하고 응용 프로그램 전체에서 액세스 할 수 있습니다.

어떻게하는지 알려 드리겠습니다.

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

다음 두 번째 페이지에서이 자원을 사용하여 라벨을 설정하십시오.

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

고마워 .... 너무 많은 코딩을하지 않아도 작동 함 –

+0

작동하는 경우 대답 – jadavparesh06

+0

으로 표시하시기 바랍니다. 조금 새롭다. –

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

대상 페이지 : 당신은 모든 10 개 페이지에 사용자 이름이 필요하면

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

다른 페이지로 이동하는 방식을 변경해야합니까? 내 코딩을 봐 –

+0

나는 그것을 얻지 못했습니다 .. 도와 줘서 고마워. jadavparesh06 예제를 사용하고 잘 작동합니다. –

관련 문제