PDA

Prikaži potpunu verziju : Problem sa Queryjem C#


Djolle27
23.9.2008, 17:11
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 http://www.benchmark.co.yu/forum/images/smilies/biggrin.gif). 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 http://www.benchmark.co.yu/forum/images/smilies/smile.gif i hvala u napred http://www.benchmark.co.yu/forum/images/smilies/vb_mig.gif

rile
24.9.2008, 4:27
Mislim da si na pravom putu sa %.

Kada programski zadaješ @Pretraga parametar u C# formiraj string koji se završava sa %.

SQL bi trebalo da izgleda onako kako si prvo postavio, odnosno:

...
WHERE Uplatilac LIKE @Pretraga

Djolle27
24.9.2008, 12:57
Ovo radim preko ToolStrip-a tako da ovde nema formiranja promenjivih....osim ako ja šivim u zabludi što je moguće jer sam manje više početnik :)

PDarko
25.9.2008, 1:56
Не знам ништа о C#, али знам (средње) Sql. Sql каже да сваки упит мора да се завршава са ; (тачка-зарез). Провери да ли је тако код тебе (и да ли уопште тако треба да се пише у C#).

Djolle27
25.9.2008, 2:24
Не знам ништа о C#, али знам (средње) Sql. Sql каже да сваки упит мора да се завршава са ; (тачка-зарез). Провери да ли је тако код тебе (и да ли уопште тако треба да се пише у C#).

Ovde ne treba....ovo je MS SQL....ti verovatno koristiš neki drugi

rile
25.9.2008, 2:52
Prilično sam siguran da može da se nekako doda "%"; na žalost, nemam vremena da to sada proučavam.

Na brzinu sam napravio alternativu, da potrebnu transformaciju uradiš u SQL.

Probaj ovako:
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

Interesantno, sada kada sam konačno probao na primeru, radi i tvoj način:
WHERE Uplatilac LIKE '%' + @Pretraga + '%'

Ne razumem zašto tebi ne radi. Eventualno probaj
WHERE RTRIM(Uplatilac) LIKE .....


Iskreno nisam najsigurniji šta tačno procenti znače tu

Sada ponovo gledam tvoje originalno pitanje. Procenat je kao džoker znak, znači "bilo šta". Ako staviš procenat i ispred i iza, onda će pojavljivanje stringa u @Pretraga bilo gde u tekstu polja Uplata da bude pogodak. Ako ti treba samo da izlistaš redove u kojima Uplata počinje sa @Pretraga, onda samo dodaj procenat na kraj.
http://msdn.microsoft.com/en-us/library/ms179859.aspx

Djolle27
25.9.2008, 18:14
Prilično sam siguran da može da se nekako doda "%"; na žalost, nemam vremena da to sada proučavam.

Na brzinu sam napravio alternativu, da potrebnu transformaciju uradiš u SQL.

Probaj ovako:
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

Interesantno, sada kada sam konačno probao na primeru, radi i tvoj način:
WHERE Uplatilac LIKE '%' + @Pretraga + '%'

Ne razumem zašto tebi ne radi. Eventualno probaj
WHERE RTRIM(Uplatilac) LIKE .....




Sada ponovo gledam tvoje originalno pitanje. Procenat je kao džoker znak, znači "bilo šta". Ako staviš procenat i ispred i iza, onda će pojavljivanje stringa u @Pretraga bilo gde u tekstu polja Uplata da bude pogodak. Ako ti treba samo da izlistaš redove u kojima Uplata počinje sa @Pretraga, onda samo dodaj procenat na kraj.
http://msdn.microsoft.com/en-us/library/ms179859.aspx

RADI!!!!!!!!! Puno ti hvala :n_klanja:iskreno da ti kažem počeo sam polako da gubim nadu da ću ovo uspeti da rešim. Stvarno hvala ti puno na ovome. Probaću i ovaj drugi način što si predložio, a zašto neće da radi moj način kod mene.....to verovatno sami Bog zna mada oće to kod mene tako često :) . Iskreno ne razumem tačno na koji način funkcioniše ovaj tvoj način pošto SUBSTRING do sada nikada nisam koristio, ali preko ovog linka što si gore stavio ima objašnjeno tako da se nadam da ću ubrzo prokljuviti. Ako ne, možda ti budem malo dosađivao preko privatnih poruka :D