Combobox OnSelectionChanged reaguje dopiero za drugim razem...

0
            private void OnSelectionChanged(object sender, SelectionChangedEventArgs e) 
            { 

                DataAdapter = new SqlDataAdapter("Select godzina from Seans where data = '" + combodata.Text + "'", Connection);
                DataAdapter.Fill(dataSet, "Tabela3");
            
       
                int i = 0;
                while (i < dataSet.Tables["Tabela3"].Rows.Count) //liczba rekordów
                {
                    combogodzina.Items.Add(dataSet.Tables["Tabela3"].Rows[i][0]);
                    i++;
                }

            }

Kiedy za pierwszy razem wybieram jakąś datę z combodata to w combogodzina nic się nie dodaje, kiedy znowu zmienię w combodata na inną datę to wtedy dopiero wypełniają się godziny w combogodzina.

Dlaczego tak się dzieję i jak zrobić aby po prostu po wybraniu daty za pierwszym razem ładowały mi się godziny zgodnie z zapytaniem do bazy?

2

wystarczy postawić breakpointa i sprawdzić

0

Podczas wykonywania tego kodu:

private void OnSelectionChanged(object sender, SelectionChangedEventArgs e) 
            { 

                DataAdapter = new SqlDataAdapter("Select godzina from Seans where data = '" + combodata.Text + "'", Connection);
                DataAdapter.Fill(dataSet, "Tabela3");
            
       
                int i = 0;
                while (i < dataSet.Tables["Tabela3"].Rows.Count) //liczba rekordów
                {
                    combogodzina.Items.Add(dataSet.Tables["Tabela3"].Rows[i][0]);
                    i++;
                }

            } 

comobata.Text za pierwszym razem jest = "", dopiero za drugim razem ma przypisaną wartość.

0

Z tego co zauważyłem to najpierw jest wykonana cała metoda a dopiero później przypisywana jest wartość combodata.Text

Oczywiście problem znika, gdy użytkownik wybierzę datę - naciśnie dalej a potem wybierze godzinę.

Pytanie jak to zrobić bez wykorzystywania kolejnej metody.

Kiedy zostaje wywołana metoda:

private void combodata_SelectionChanged(object sender, SelectionChangedEventArgs e)

To wartość combodata.Text zostaje przypisana dopiero po zakończeniu się metody, w takim razie gdzie umieścić zapytanie SQL aby po wybraniu z combodata od razu wypełnił się combogodzina??

0
combodata.SelectedItem.ToString()

zamiast combodata.Text

 załatwił problem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1