I have created a program that needs to show 5 data grids at the bottom of my WPF application however the program will only show one at a time. Or it will show 3 boxes but only one Datagrid will contain any data.
This is the code I have so far:
private void SearchButton_Click(object sender, RoutedEventArgs e)
{
if (GPBox.IsChecked == true)
{
connect = new MySqlConnection(connectionString);
cmd = new MySqlCommand("select distinct nameOfService as Surgeries, street, city, postcode, contactNumber from gpSurgery", connect);
connect.Open();
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
connect.Close();
DataGridGP.Visibility = Visibility.Visible;
DataGridGP.DataContext = dt;
}
else if (DentistBox.IsChecked == true)
{
connect = new MySqlConnection(connectionString);
cmd = new MySqlCommand("select distinct nameOfService as Dentists, street, city, postcode, contactNumber from Dentist", connect);
connect.Open();
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
connect.Close();
DataGridDentist.Visibility = Visibility.Visible;
DataGridDentist.DataContext = dt;
}
else if (SchoolsBox.IsChecked == true)
{
connect = new MySqlConnection(connectionString);
cmd = new MySqlCommand("select distinct nameOfService as Schools, street, city, postcode, contactNumber from Schools", connect);
connect.Open();
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
connect.Close();
DataGridSchools.Visibility = Visibility.Visible;
DataGridSchools.DataContext = dt;
}
else if (NurseryBox.IsChecked == true)
{
connect = new MySqlConnection(connectionString);
cmd = new MySqlCommand("select distinct nameOfService as Nurserys, street, city, postcode, contactNumber from Nursery", connect);
MySqlDataAdapter sqlDA = new MySqlDataAdapter();
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
connect.Close();
DataGridNursery.Visibility = Visibility.Visible;
DataGridNursery.DataContext = dt;
}
else if (OpticianBox.IsChecked == true)
{
connect = new MySqlConnection(connectionString);
cmd = new MySqlCommand("select distinct nameOfService as Opticians, street, city, postcode, contactNumber from Opticians", connect);
MySqlDataAdapter sqlDA = new MySqlDataAdapter();
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
connect.Close();
DataGridOpticians.Visibility = Visibility.Visible;
DataGridOpticians.DataContext = dt;
}
else
{
MessageBox.Show("Select a service.");
}
}
XAML code:
<DataGrid Name="DataGridGP" Height="57" VerticalAlignment="Top" Margin="0,129,10,0" ItemsSource="{Binding}" Visibility="Collapsed" />
<DataGrid Name="DataGridDentist" HorizontalAlignment="Left" Height="57" Margin="0,191,0,0" VerticalAlignment="Top" Width="782" Visibility="Collapsed"/>
<DataGrid Name="DataGridSchools" HorizontalAlignment="Left" Height="57" Margin="0,253,0,0" VerticalAlignment="Top" Width="782" Visibility="Collapsed"/>
<DataGrid Name="DataGridNursery" Height="57" Margin="0,315,10,0" VerticalAlignment="Top" Visibility="Collapsed"/>
<DataGrid Name="DataGridOpticians" HorizontalAlignment="Left" Height="57" Margin="0,377,0,0" VerticalAlignment="Top" Width="782" Visibility="Collapsed"/>
Can anyone see why it shows only one Datagrid or none at all?
Thanks