Usuwanie rekordow listy

0

Witam, potrzebuje sposobu na wyswietlenie pustej listy kiedy wynik wyszukiwania w MySql = 0
Metoda .Count() zwraca mi poprawna ilosc znalezionych rekordow wiec tu nie ma problemu.
Jesli wynik =0 wyswietla komunikat o braku rekordow ale wszystko pozostaje na liscie, z poprzedniego wyszukiwania.
Probowalem metode .Clear(), niestety bez jakiego kolwiek rezultatu.

oto moja metoda na wyswietlanie wszystkich rekordow, chcialbym by nie pokazywala nic kiedy wynik jest =0

         public void showRecords()
        {
            mySQL showRecords = new mySQL();

            List<Order> orders = showRecords.listOrders(serverNameBox.Text, userNameBox.Text, passwordBox.Password, databaseBox.Text);
            if (orders.Count() == 0)
            {
               orders.Clear();
               
            }
            foreach(Order list in orders)
            {
                ordersList.ItemsSource = orders;
            }
            showRecords.disconnect(serverNameBox.Text, userNameBox.Text, passwordBox.Password, databaseBox.Text);
       
        }

Dodam jeszcze ze nie moge wpisac ordersList.Clear() Taka metoda z jakiegos powodu nie wchodzi w rachube, czemu?

0

removeAll

0

Użyj ObserwableCollection zamiast tej listy.

0
            if (orders.Count() == 0)
            {
               orders.Clear();
               
            }

Jeśli lista jest pusta, to usuwasz z niej elementy?

Dodam jeszcze ze nie moge wpisac ordersList.Clear() Taka metoda z jakiegos powodu nie wchodzi w rachube, czemu?

A jakiego typu jest ordersList?

0

A jakiego typu jest ordersList?

To jest <ListView> z xaml

0

dobra mam rozwiazanie, kolega somekind podpowiedzial z tym typem, zapomnialem ze to jest lista z xaml.

czysczenie wyglada tak:

ordersList.ItemsSource = null;

Dzieki!

0
// pole w klasie
ObservableCollection<Order> orders = new ObservableCollection<Order>();
//wywołane tylko raz w konstruktorze
ordersList.ItemsSource = orders;
//później nie musisz nic czyścić samo doda lub odejmie elementy z listview wystarczy
public void showRecords()
{
    mySQL showRecords = new mySQL();
    orders = showRecords.listOrders(serverNameBox.Text, userNameBox.Text, passwordBox.Password, databaseBox.Text);
    showRecords.disconnect(serverNameBox.Text, userNameBox.Text, passwordBox.Password, databaseBox.Text);//po co tu te parametry?
}
0
public void disconnect(string server, string username, string password, string database) 
{ 
    string connectionAddress = "server=" + server + ";
    uid=" + username + ";
    password=" + password + ";
    database=" + database; 
    MySqlConnection connection = new MySqlConnection(connectionAddress); 
    connection.Close(); 
}

I za to temat powinien trafić do perełek :D

@arti86 Zasada działania powinna być taka:
Łączysz się do bazy, wykonujesz zapytanie, kończysz połączenie.
Nie wiem jak u ciebie wygląda metoda Connect ale podejrzewam że masz tak
Łączysz się do bazy, wykonujesz zapytanie.
Póżniej
Łączysz się do bazy, kończysz połączenie.

0

nie kazdy urodzil sie koderem, ja sie ucze c# na jakims wymyslonym przykladzie. Nie trzeba Od razu szydzic z kogos, czyz nie?

0

Lepiej bys podpowiedzial co z tym nie tak?

0

Pewnie to, że w metodzie disconnect tworzysz nowe połączenie z bazą, żeby je w następnej instrukcji zamknąć...

0

dobra dobra, posmiali sie to wracac do pracy :P

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