Details von ListBox in DataGrid anzeigen

  • C#
  • .NET 5–6

    Details von ListBox in DataGrid anzeigen

    Hallo,
    ich arbeite momentan an einem programm, ich möchte dass in einer listbox von in einer datenbank gespeicherte personen angezeigt werden, und wenn ich eine person auswähle die details in einem datagrid dazu angezeigt werden. Das anzeigen der Vornamen in der ListBox funktioniert, jetzt fehlt noch dass die details in dem datagrid. Kann mir da jemand weiterhelfen?

    Das ist mein Code zum anzeigen der Vornamen.

    C#-Quellcode

    1. private void FillListBox()
    2. {
    3. var sqlConnection = getSqlConnection();
    4. try
    5. {
    6. string query = "select Vorname from MitgliedmitInfos";
    7. SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(query, sqlConnection);
    8. using (sqlDataAdapter)
    9. {
    10. DataTable mitgliedTable = new DataTable();
    11. sqlDataAdapter.Fill(mitgliedTable);
    12. listMitglieder.DisplayMemberPath = "Vorname";
    13. listMitglieder.SelectedValuePath = "Id";
    14. listMitglieder.ItemsSource = mitgliedTable.DefaultView;
    15. }
    16. }
    17. catch (Exception e)
    18. {
    19. MessageBox.Show(e.ToString());
    20. }
    21. }


    So werden mir bei jeder Person alle Nachnamen angezeigt:

    C#-Quellcode

    1. private void ListMitglieder_SelectionChanged(object sender, SelectionChangedEventArgs e)
    2. {
    3. var sqlConnection = getSqlConnection();
    4. try
    5. {
    6. string query = "select Nachname from MitgliedmitInfos";
    7. SqlCommand sqlCommand = new SqlCommand(query, sqlConnection);
    8. SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
    9. using (sqlDataAdapter)
    10. {
    11. DataTable mitgliedTable = new DataTable();
    12. sqlDataAdapter.Fill(mitgliedTable);
    13. listeMitgliederDetails.DisplayMemberPath = "Nachname";
    14. listeMitgliederDetails.SelectedValuePath = "Vorname";
    15. listeMitgliederDetails.ItemsSource = mitgliedTable.DefaultView;
    16. }
    17. }
    18. catch (Exception ex)
    19. {
    20. MessageBox.Show(ex.ToString());
    21. }
    22. }


    Jetzt möchte ich ja aber nicht nur die Nachname sehen, sondern auch Land, Wohnort, Straße, Hausnummer, Emailadresse und Telefonnummer, und und bei jeder Person nur die dazugehörigen daten. Weiß jemand was ich ändern muss?
    Ich habe es schon so probiert:

    C#-Quellcode

    1. private void ListMitglieder_SelectionChanged(object sender, SelectionChangedEventArgs e)
    2. {
    3. var sqlConnection = getSqlConnection();
    4. try
    5. {
    6. string query = "select Nachname, Land, Wohnort, Straße, Hausnummer, Emailadresse, Telefonnummer from MitgliedmitInfos where Vorname = @VornameId";
    7. SqlCommand sqlCommand = new SqlCommand(query, sqlConnection);
    8. SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
    9. using (sqlDataAdapter)
    10. {
    11. sqlCommand.Parameters.AddwithValue("@VornameId", listMitglieder.SelectionChanged);
    12. DataTable mitgliedTable = new DataTable();
    13. sqlDataAdapter.Fill(mitgliedTable);
    14. listeMitgliederDetails.DisplayMemberPath = "Nachname, Land, Wohnort, Straße, Hausnummer, Emailadresse, Telefonnummer";
    15. listeMitgliederDetails.SelectedValuePath = "Vorname";
    16. listeMitgliederDetails.ItemsSource = mitgliedTable.DefaultView;
    17. }
    18. }
    19. catch (Exception ex)
    20. {
    21. MessageBox.Show(ex.ToString());
    22. }
    23. }


    Aber da bekomme ich einen error. Vielen Dank im Voraus für eure Hilfe
    LG Kathi