Witam, tworzę projekt oparty o WPF i mam taki problem.
Mam stworzone dwa okna: jedno okno logowania i drugie okno główne programu. Problem jest taki, że gdy się zaloguję poprawnie to przechodzę do nowego okna w prawidłowy sposób, ale nie wiem jak uzyskać dane pobrane z wcześniejszego okna logowania. Mój kod jest następujący.
Okno logowania:
using Oracle.DataAccess.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Data;
namespace TrainingProject
{
/// <summary>
/// Logika interakcji dla klasy LoginScreen.xaml
/// </summary>
public partial class LoginScreen : Window
{
OracleConnection con = new OracleConnection();
public LoginScreen()
{
InitializeComponent();
}
private void BtnLoginSubmit_Click(object sender, RoutedEventArgs e)
{
string sql = "select 'OK' from Uzytkownik where login = '" + txtLogin.Text + "' and haslo = dbms_obfuscation_toolkit.md5 (input => utl_i18n.string_to_raw ('" + txtPassword.Password + "'))";
OracleCommand cmd = new OracleCommand(sql, con);
cmd.CommandType = CommandType.Text;
OracleDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
if(dr.GetString(0).ToString() == "OK")
{
MainWindow dashboard = new MainWindow();
dashboard.Show();
this.Close();
}
else
{
MessageBox.Show("Błędne dane");
}
}
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
string conString = "Data Source=(DESCRIPTION="
+ "(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))"
+ "(CONNECT_DATA=(SID=xe)));"
+ "User Id=c##login; Password=passwd;";
con.ConnectionString = conString;
con.Open();
}
}
}
Kod, a właściwie jego brak w drugim oknie. Chciałbym na przykład w oknie logowania wyciągnąć login użytkownika (umiem to zrobić) i go przesłać do głównego okna, by tam móc robić odpowiednie czynności.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace TrainingProject
{
/// <summary>
/// Logika interakcji dla klasy MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
}
}
}
Drugi problem pojawia się w przypadku samego przycisku zaloguj. Gdy podam błędne dane to nie wyświetla mi MessageBox'a w ogóle. Nie wchodzi mi do funkcji else. Próbowałem na kilka wariantów i nic nie pomogło.