[ Djolle27 @ 23.09.2008. 16:16 ] @
Pozdrav

E ovako....problem je u tome kada želim da pronađem željeni podatak da bih ga pronašao potrebno je da u textbox upišem njegov pun naziv. Meni je potrebno da upišem npr samo par prvih slova ili samo prvu reč i da mi program izbaci podatke koje počinju sa tim slovima tj sa tom reči (ne znam koliko je ovo gramatički tačno ). Trenutno mi tekst upita izgleda ovako:

SELECT Uplatilac, [Svrha uplate], Primalac, [Šifra plaćanja], Valuta, Iznos, [Račun primaoca], Model, Broj
FROM Uplata
WHERE Uplatilac LIKE @Pretraga

Po mom mišljenju je problem u zadnjem redu tj u delu LIKE. Probao sam da ga izmenim na ovaj način:

LIKE '%'+@Pretraga+'%'

međutim nema nikakve promene. Iskreno nisam najsigurniji šta tačno procenti znače tu ali mislim da sam ranije uspeo sa njima da napravim nekakav pomak. Pomagajte ljudi stojim na ovome već tri dana.....e da i ako nisam bio dovoljno jasan sa pitanjem, što je veoma moguće, pa...pitajte i hvala u napred
[ stefanpn @ 23.09.2008. 17:03 ] @

SQL upit treba da izgleda ovako:

"SELECT Uplatilac, [Svrha uplate], Primalac, [Šifra plaćanja], Valuta, Iznos, [Račun primaoca], Model, Broj
FROM Uplata
WHERE Uplatilac LIKE '%" + tvojtext + "%'"

Pa sad ti vidi kako ces to napisati u C#... :)
[ Djolle27 @ 23.09.2008. 22:36 ] @
Probao sam to i izbacuje mi error u kojem piše

Generated SELECT statement
Invalid Column name 'Pretraga'

Da nisam rekao da ovo radim sa ToolStrip-om preko TableAdapter-a.
[ stefanpn @ 24.09.2008. 09:03 ] @
Pa postavi to parce koda gde to radis i opisi strukturu baze (izlistaj polja te tabele.), i kazi koju bazu koristis. Neznam bas C# ali sam radio u VB.NET pa bih mozda mogao da ti pomognem. Inace ova tema je mozda vise za .NET forum ili za ovde.
[ Djolle27 @ 24.09.2008. 12:01 ] @
Izvinjavam se zbog postavljanja teme na pogrešno mesto. Trebalo bi da bude u bazama podataka pod MS SQL.
[ Djolle27 @ 24.09.2008. 12:19 ] @
Citat:
stefanpn: Pa postavi to parce koda gde to radis i opisi strukturu baze (izlistaj polja te tabele.), i kazi koju bazu koristis. Neznam bas C# ali sam radio u VB.NET pa bih mozda mogao da ti pomognem. Inace ova tema je mozda vise za .NET forum ili za ovde.


Ja sam inače, ako već nije primećeno iz priloženog, manje više početnik tako da ne znam na šta tačno misliš kada kažeš da izlistam polja tabele. Možda i znam ali na jeziku običnih smrtnika. Inače radim ovo u Visual Studio-ju i u njemu se može raditi i u C# i u VB-u i kako mi se čini ovaj problem se rešava na isti način u oba slučaja. Inače vršim pretragu u BindingNavigator-u tj imam više stranica pa na osnovu jednog (od više) unetog podatka želim da pronađem željenu stranicu. Takođe sam tek sad postao svestan problema kada hoću da štampam prikazuje mi samo prvu stranicu BindingNavigator-a i nema načina da prikaže bilo koju drugu. Pa ako neko zna nešto oko ovoga dobro došla bi mi pomoć i oko toga. Ne znam da li sam ovo dobro objasnio ali kao što sam rekao u prvom postu...pitajte...

[Ovu poruku je menjao Djolle27 dana 24.09.2008. u 18:38 GMT+1]
[ mmix @ 25.09.2008. 10:17 ] @
Citat:
stefanpn: Pa sad ti vidi kako ces to napisati u C#...


Ne reci dvaput

Code:

// LINQ (Language Integrated Query) for SQL, od SQL2008 ima i native provider

var uplatioci = from u in db.Uplata
                where u.Uplatilac.Contains(tvojtext)
                select new { u.Uplatilac, u.SvrhaUplate, u.Primalac, u.SifraPlacanja, u.Valuta, u.Iznos, u.RacunPrimaoca, u.Model, u.Broj }


[ Djolle27 @ 25.09.2008. 17:33 ] @
Evo rešenja ako nekog interesuje:

SELECT Uplatilac, [Svrha uplate], Primalac, [Šifra plaćanja], Valuta, Iznos, [Račun primaoca], Model, Broj
FROM Uplata
WHERE SUBSTRING(Uplatilac, 0, LEN(@Pretraga) + 1) LIKE @Pretraga

Do rešenja nisam sam došao pa bih bio zahvalan ako bi neko mogao da mi objasni samo zadnji red. Možda koju reč više o SUBSTRING-u pošto se do sada nisam susretao sa tim.
[ stefanpn @ 25.09.2008. 17:42 ] @
SUBSTRING ti vraca deo niza.

Prevod upita: Izaberi Uplatilac, [Svrha uplate], Primalac, [Šifra plaćanja], Valuta, Iznos, [Račun primaoca], Model, Broj iz tabele Uplata, gde deo stringa Uplatilac od pozicije 0 do duzine vrednosti promenljive pretraga (tipa string) + 1, lici na vrednosti promenljive pretraga (tipa string).

Za vise informacija pogledaj ovo.

@mmix
To nisam znao...
[ mmix @ 25.09.2008. 18:11 ] @
Citat:
stefanpn: :) To nisam znao...
Zato smo tu, za sve postoji prvi put.

Citat:
Djolle27: WHERE SUBSTRING(Uplatilac, 0, LEN(@Pretraga) + 1) LIKE @Pretraga


Hm, ne vidim zasto bi ovo radio, ovo je totalne neoptimalno (sprecavas query optimizer da koristi indeks nad Uplatilac, ako ga imas) i bespotrebno jer LIKE radi isto ovo, samo u obliku LIKE @Pretraga + '%' i jos pride moze da koristi indeks.