Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Filtriranje liste u VB NET-u

[es] :: MS SQL :: Filtriranje liste u VB NET-u

[ Pregleda: 2750 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

nikitaGradov
Beograd

Član broj: 223576
Poruke: 206
82.214.127.*



+3 Profil

icon Filtriranje liste u VB NET-u24.11.2014. u 11:03 - pre 68 meseci
Imam listu (u VB Net-u) i string za filtriranje ... htio bih da listu filtriram preko WHERE ... kako da to napisem ?

Znaci, treba mi nesto ovako:

- postoji nekaLista
- postoji stringZaFiltriranje = 'polje1 = 222 AND polje2 = 333 AND polje3=456 AND polje4 = 777 ...'

treba mi ovako nesto:

novaLista = nekaLista.Where(Filter=stringZaFiltriranje) ???

Kako da najlakse filtriram listu ?

Hvala unaprijed ...
Programming is fun, but writing good software is hard ...
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+78 Profil

icon Re: Filtriranje liste u VB NET-u24.11.2014. u 15:01 - pre 68 meseci
To je VB.NET pitanje. Zasto ne uradis ceo upit na SQL serveru, pa onda to ucitas u listu? Nisam siguran da se liet mogu filtrirati na SQL nacin.
 
Odgovor na temu

nikitaGradov
Beograd

Član broj: 223576
Poruke: 206
95.180.68.*



+3 Profil

icon Re: Filtriranje liste u VB NET-u28.11.2014. u 08:00 - pre 68 meseci
Radi se o transferu aplikacije pisane u nekoj starijoj tehnologiji na .Net platformu.

Ima neka uskladistena procedura koja vraca neki rezultat, koji se dodatno filtrira pomocu 'filtra' koji je string, a koji moze biti nesto ovako:

'Polje1 = nekaVrijednost', a moze biti i nesto ovako:

'Polje1=nekaVrijednost AND Polje2=nekaVrijednost AND Polje3=NekaVrijednost ...'

Ovaj filtar se kreira na osnovu rezultata neke druge uskladistene procedure.

Znaci, pitanje je kako iz liste (koja predstavlja rezultat izvrsenja uskladistene procedure) selektovati one clanove koji odgovaraju filtru (a koji je string) -> nesto kao multikriterijumski linq upit ?
Programming is fun, but writing good software is hard ...
 
Odgovor na temu

Dusan Kondic
Programer
ZR "Parametar" Ljubovija
Ljubovija

Član broj: 49961
Poruke: 225
*.adsl-a-8.sezampro.rs.

Sajt: www.drinacoding.com


+14 Profil

icon Re: Filtriranje liste u VB NET-u28.11.2014. u 08:21 - pre 68 meseci
Ja sam zbog ovakvih i sličnih problema prestao da koristim List<T> i vratio se na DataTable.
DataTable možeš da filtriraš pomoću DataTable.DefaultView.RowFilter = "Polje1=nekaVrijednost AND Polje2=nekaVrijednost AND Polje3=NekaVrijednost ..."
a podržava i Bind-ovanje ako koristiš WPF ili Silverlight.
 
Odgovor na temu

nikitaGradov
Beograd

Član broj: 223576
Poruke: 206
95.180.68.*



+3 Profil

icon Re: Filtriranje liste u VB NET-u28.11.2014. u 12:04 - pre 68 meseci
Hvala na odgovoru ...

na tekucemo poslu se forsira koriscenje listi ... do sada, moje kolege, nisu imale slucaj sa visekriterijumskim filtriranje, lista.where(... poljeIzTabele = vrijednostZaFiltriranje)

vidjecu sta mogu, ako ne, na[ravocu metod da uskladistena procedura vraca DataSet ...

Pozdrav
Programming is fun, but writing good software is hard ...
 
Odgovor na temu

dava
Banja Luka

Član broj: 27208
Poruke: 893



+384 Profil

icon Re: Filtriranje liste u VB NET-u02.12.2014. u 10:58 - pre 68 meseci
Ako si već koristio <list>, završi to ovako:

Napraviš kopiju takve liste:

Code:

            filtrirana = new List<NekaLista>();
            filtrirana = nekaLista;


dalje ispituješ šta je od parametara za filtriranje uneseno na formi:

Code:

            if (polje1.Text.Length > 0)
            {
                filtrirana= filtrirana.FindAll(delegate(NekaLista o)
                {
                    return o.polje1.ToLower().StartsWith(polje1.Text.ToLower());
                });
            }

            if (polje2.Text.Length > 0)
            {
                filtrirana = filtrirana.FindAll(delegate(NekaLista )
                {
                    return o.polje2.ToLower().StartsWith(polje2.Text.ToLower());
                });
            }

        // polje3 ...

        // polje4 ...



ostaje još učitavanje filtrirane liste:

Code:

            DataGrid.DataSource = filtrirana;


U ovom slučaju ti originalna lista ostaje u memoriji i možeš se nekim digmetom "obriši filtere" vratiti na ne filtriranu listu (ako za ovim ima potrebe)


Code:

            DataGrid.DataSource = nekaLista;


SELECT * FROM หน่วยงานหลัก WHERE ยสันติ LIKE 'โดย%'
 
Odgovor na temu

nikitaGradov
Beograd

Član broj: 223576
Poruke: 206
95.180.68.*



+3 Profil

icon Re: Filtriranje liste u VB NET-u02.12.2014. u 21:48 - pre 68 meseci
Hvala veliko ...

Inace, danas sam upravo tako i uradio (posto je, kao sto si i ti primjetio, kriterijum za filtriranje na AND osnovi), jedino sam koristio Where (Linq) umjesto FindAll:

Code:

if uslovZaKriterijum_1 then
   listaKojaSeFiltrira = listaKojaSeFiltrira.With(Function(p) p.Polje_X = vrijednost_X).ToList()
end if

if uslovZaKriterijum_2 then
   listaKojaSeFiltrira = listaKojaSeFiltrira.With(Function(p) p.Polje_X = vrijednost_X).ToList()
end if

...


Kao sto sam napisao, ovdje je slucaj da su u kriterijumu samo AND-ovi ... pa sam se 'provukao' na ovaj nacin ...

Hvala svima koji su se javili i pozdrav
Programming is fun, but writing good software is hard ...
 
Odgovor na temu

nikitaGradov
Beograd

Član broj: 223576
Poruke: 206
95.180.68.*



+3 Profil

icon Re: Filtriranje liste u VB NET-u02.12.2014. u 21:50 - pre 68 meseci
potkrala mi se grska u kucanju, umjesto With, jasno, ie Where:

Code:


if uslovZaKriterijum_1 then
   listaKojaSeFiltrira = listaKojaSeFiltrira.Where(Function(p) p.Polje_X = vrijednost_X).ToList()
end if

if uslovZaKriterijum_2 then
   listaKojaSeFiltrira = listaKojaSeFiltrira.Where(Function(p) p.Polje_X = vrijednost_X).ToList()
end if

...

Programming is fun, but writing good software is hard ...
 
Odgovor na temu

[es] :: MS SQL :: Filtriranje liste u VB NET-u

[ Pregleda: 2750 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.