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

iz TextBox-a u DateTime !?

[es] :: .NET :: iz TextBox-a u DateTime !?

Strane: 1 2

[ Pregleda: 5657 | Odgovora: 20 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bokac
Beograd

Član broj: 19866
Poruke: 110
*.dial.b92.net



Profil

icon iz TextBox-a u DateTime !?12.05.2004. u 16:59 - pre 242 meseci
Molim za pomoc. U pitanju je ASP.NET aplikacija (C#), a problem je sledeci:

Imam TextBox kontrolu na strani u koju korisnik treba da upise datum u formatu 'dd/mm/yyyy' ili 'mm/dd/yyyy' nije toliko bitno.
Kako god da pokusam da pretvorim taj string u DateTime kako bi SQL Server mogao da podatak procita, inace da napomenem polje u tabeli je formata ("smalldatetime" - 3/28/2004 14:50:00), nikako ne uspevam.
Znaci na osnovu korisnikovog upisa u TextBox ja treba da napravim SELECT upit nad nekom tabelom. Cini mi se da sam sve pokusao npr. kao DateTime.Parse(textBox1.Text) i sl. i jos mnogo toga ali nisam jos nista resio. Da li neko zna kako ovo moze da se uradi. Hvala unapred.
 
Odgovor na temu

havramm
Miroslav Havram
Software Developer / Engineer
Beograd

Član broj: 4603
Poruke: 255
*.bg.wifi.vline.verat.net



Profil

icon Re: iz TextBox-a u DateTime !?12.05.2004. u 17:26 - pre 242 meseci
A sto ne koristis "kalendar" kontrolu? Zar ne bi bilo lakse i intuitivnije da korisnik izabere datum umesto sto upisuje? Probaj tako pa javi.
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
 
Odgovor na temu

Željko
Željko Turbić
top of the mountain

Član broj: 16217
Poruke: 89
195.252.81.*



+6 Profil

icon Re: iz TextBox-a u DateTime !?12.05.2004. u 18:14 - pre 242 meseci
Kako ti je setovan regional settings za datum i vreme? Funkcija 'DateTime.Parse' ce proci jedino ako je argument u formatu u kom je regional setting namesten (pod uslovom da imas samo jedan argument, tj. da nemas ostale parametre IFormatProvider i/ili DateTimeStyles). Jos jedan savet u vezi datuma: datum u formatu yyyy-MM-dd prolazi u svim situacijama, znaci bez obzira na regional settings (mislim prilikom konverzije
string->date, i prilikom upisa u bazu)

pozdrav Željko
 
Odgovor na temu

bokac
Beograd

Član broj: 19866
Poruke: 110
*.dial.b92.net



Profil

icon Re: iz TextBox-a u DateTime !?12.05.2004. u 18:18 - pre 242 meseci
Da znas havramm to sam i ja tako hteo da resim, ali covek za koga ovo pravim ima sasvim drugaciji pristup celoj stvari, on je negde na web-u video upravo ovaj moj sadasnji problem : ) ,to mu se svidelo i hoce bas tako. Znaci da korisnik sam unese zeljeni datum u TextBox, a ono na osnovu toga upisa pretrazi tabelu i ......
Da znas samo cela stvar je nesto komplikovanija nego sto sam objasnio, ali nisam hteo da previse komplikujem nego sam izdvojio konkretan problem koji me trenutno muci.
Zeljko, jel mislis na kako je setovan na lokalu kod mene??? dd.mm.yyyy, a na SQL Serv. mm.dd.yyyy
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: iz TextBox-a u DateTime !?12.05.2004. u 18:39 - pre 242 meseci
Bitno je da ako šalješ SQL izraz, datum ima format tipa 'yyyy-MM-dd' i nema zabune. SQL server će ispravno protumačiti format, jer ako se na početak stave 4 cifre to mora biti godina, a onda se očekuje da se ide prema manjem intervalu, dakle mesec pa dan. Ako baš želiš biti 100% siguran uvek možeš da formiraš datum tako što ćeš mesec označiti sa tri slova (JAN, FEB, MAR..), godinu sa 4 cifre i tek onda nema problema.
Naravno ako ćeš za unos koristiti textbox, na tebi je da rešiš problem šta je dan. šta mesec a šta godina (npr. dd/mm/yy vs mm/dd/yy..?). Makar malo poboljšanje bi bilo da staviš posebne box-eve za dan, mesec i godinu..
Commercial-Free !!!
 
Odgovor na temu

bokac
Beograd

Član broj: 19866
Poruke: 110
*.dial.b92.net



Profil

icon Re: iz TextBox-a u DateTime !?12.05.2004. u 18:52 - pre 242 meseci
Razumem te degojs ali kazem ti stvarnu mi nije jasno sta sam izostavio kod mene. Hajde objasnicu celu situaciju. Pored ostalih imam 2 TextBox kontrole. Jedna sluzi za unos pocetnog datuma, a druga krajnjeg datuma. U okviru toga se vrsi pretrazivanje. Naravno u samoj bazi imam jednu kolonu (datetime) sa datumom i vremenom, kako to vec SQL Server drzi u sebi. Znaci ja treba da izvrsim pretrazivanje nad bazom u okviru zadatih vrednosti. Pokusavao sam na ovaj nacin nesto kao:
Code:

string upit="SELECT nesto1, nesto2, ... FROM Tabela1 WHERE Datum BETWEEN "+DateTime.Parse(textBox1.Text)+" AND "+DateTime.Parse(textBox2.Text);

, naravno cela stvar potpunooo ignorise datum i ispisuje i rezultate koji nisu u okvirima zadatog.

Sada pokusavam da nabudzim nesto ovako:
Code:

SqlCommand comm = new SqlCommand();
comm.CommandText = "@SELECT nesto1, nesto2, ... FROM Tabela1 WHERE Datum BETWEEN @StartDate AND @EndDate ORDER BY TimeStamp DESC";
comm.Parameters["@StartDate"].Value = Convert.ToDateTime(textbox1.Text);
comm.Parameters["@EndDate"].Value = Convert.ToDateTime(textbox2.Text);
SqlDataReader dr = comm.ExecuteReader();
.....

ali opet zeza i dobijam iste rezultate kao i u prvom primeru, znaci neispravne (ignorise pretrazivanje na osnovu unetih datuma).
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: iz TextBox-a u DateTime !?12.05.2004. u 19:20 - pre 242 meseci
Zašto uopšte konvertuješ u DateTime? Datum prosledi kao string:

select * from tbl_table1 where
datum between '2004-may-25' and '2004-may-27';

ili

select * from tbl_table1 where
datum between '2004-05-25' and '2004-05-26';



Mada, to sa tekstboksovima je baš loša ideja.
Commercial-Free !!!
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: iz TextBox-a u DateTime !?12.05.2004. u 19:33 - pre 242 meseci
Ovo je loša ideja i sa stanovišta sigurnosti:

Code:

string upit="SELECT nesto1, nesto2, ... FROM Tabela1 WHERE Datum BETWEEN "+DateTime.Parse(textBox1.Text)+" AND "+DateTime.Parse(textBox2.Text);


Direktno uključivati korisnikov input u SQL query je školski primer sigurnosnog propusta. Kako znaš da će da ti prosledi baš datum, a ne nešto drugo?
 
Odgovor na temu

bokac
Beograd

Član broj: 19866
Poruke: 110
*.dial.b92.net



Profil

icon Re: iz TextBox-a u DateTime !?12.05.2004. u 19:34 - pre 242 meseci
Ha-ha radi covece. Hvala ti puno, moze i ovako bez konvertovanja. Satima sam se gnjavio sa ovim, a resenje je u stvari vrlo jednostavno.
Slazem se sa tobom TextBox-ovi nisu za ove stvari.

Sto se tice provere korisnikovog upisa moracu da smislim sada i neko resenje za to jer ko zna sta sve moze covek da upise. Jel ima neko neki predlog i u vezi toga.
Pozdrav
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: iz TextBox-a u DateTime !?12.05.2004. u 19:45 - pre 242 meseci
Pa imaš već nekoliko predloga: kalendar kontrolu, combobox-ove za dan, mesec i godinu..
Ako negde dobivaš kao "vrednost" kontrole tip DateTime, lako ćeš ga konvertovati u string sa .ToString( string format ). Npr.

DateTime dt = DateTime.Now;
string datum = dt.ToString("yyyy-MMM-dd HH:mm:ss");

i gotova priča (naravno, vreme možeš i da izostaviš).
Commercial-Free !!!
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: iz TextBox-a u DateTime !?12.05.2004. u 19:52 - pre 242 meseci
Ako baš moraš da koristiš tako textbox-ove, možda bi mogao da proveriš da li unešena vrednost može uopšte da se konvertuje u DateTime..
Code:
try
{
  DateTime dt = Convert.ToDateTime( textbox1.Text );
}
catch (System.FormatException)
{
    // ne ide..
}


Mada.. rešavamo problem, a stvar od početka ne valja :)
Commercial-Free !!!
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: iz TextBox-a u DateTime !?13.05.2004. u 09:28 - pre 242 meseci
Citat:
degojs:
Pa imaš već nekoliko predloga: kalendar kontrolu, combobox-ove za dan, mesec i godinu..


Ne mora da znači da su kalendar kontrole i komboi uvek bolji od tekstboksa, recimo za unos velike količine podataka verovatno je pogodniji tekstboks nego stalno prebacivanje ruke sa tastature na miša i nazad... Pogotovu nikako komboi. I 12 elemenata je previše za snalaženje u kombou a kamo li 31 za dan ili 20 ili koliko već za godinu.

to bokac:
Što se konverzije tiče: pogledaj help za DateTime.ParseExact metodu. Pre poziva "ukucaš" CultureInfo da ti ponašanje programa ne bi zavisilo od regionalnih podešavanja na računaru na kome se izvršava.
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: iz TextBox-a u DateTime !?13.05.2004. u 11:27 - pre 242 meseci
Pa combo box može da se podesi tako da pored izbora postojećih podataka dozvoljava unošenje i novih, isto kao i textbox. Osim toga, to što će biti 31 dan u boxu nije problem - preselektuje se određeni datum, a isto vredi i za godinu. Uglavnom, unositi kompletan podatak u jednom textbox-u je totalno loše. Ako ništa, bar da ih razdvoji u 3 textbox-a, a to je onda opet slično kao combo rešenje (sa mogućnošću unošenja novih podataka). Ne vidim kako je combo lošije rešenje od textboxa, kad pruža istu mogućnost + dodatna mogućnost selektovanja definisanih vrednosti.

Osim toga, ovde se radi o ASP.NET aplikaciji, te nisam siguran da primedba o unošenju velike količine podataka uopšte ima smisla. Nasuprot tome, retki su sajtovi na kojima je, kada je potrebno da se unese datum, za to ponuđen samo jedan textbox.
Commercial-Free !!!
 
Odgovor na temu

Željko
Željko Turbić
top of the mountain

Član broj: 16217
Poruke: 89
195.252.81.*



+6 Profil

icon Re: iz TextBox-a u DateTime !?13.05.2004. u 14:53 - pre 242 meseci

Na netu se moze naci javascript koji prikazuje datum sa tri combobox-a. Script puni combobox-ove sa validnim podacima (broj dana za izabrani mesec, prestupan godina ...). Malo potrazi i onda neces imati problema sa formatom.

pozdrav Željko
 
Odgovor na temu

bokac
Beograd

Član broj: 19866
Poruke: 110
*.dial.b92.net



Profil

icon Re: iz TextBox-a u DateTime !?13.05.2004. u 18:27 - pre 242 meseci
Ljudi hvala puno na pomoci.
Stvari stoje sada ovako, sto se tice TextBox kontrole mislim da nece moci da mi prodje ta prica sa 3 odvojena box-a [mm] [dd] [yyyy], mada se ja licno slazem da je i to mnogo bolje nego ovako, a takodje i sto se tice Comb-a, trenutni zadatak mi je ipak i dalje uraditi to pomocu TextBox-a i to 1 u koji se unosi i dan i mesec i godina, a javlja mi se i dodatni problem a to je kako da formatiram da "korisnik" unese i format datuma npr. 20.5.2004. (dd.mm.yyyy), posto SQL Server u mom slucaju samo "guta" (mm.dd.yyyy) ili (mm-dd-yyyy) sve jedno. Ne znam da li cu biti u mogucnosti da menjam podesavanja datuma na samom SQL Serveru, ali svaki savet mi trenutno koristi.
Ah da, olaksavajuca okolnost je kako sam u medjuvremenu saznao ta da ce se ova strana ipak prikazivati samo ljudima sa odredjenim privilegijama sto znaci da ce izvesni korisnici biti "upoznati" sa nacinom unosenja datuma.
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: iz TextBox-a u DateTime !?13.05.2004. u 18:49 - pre 242 meseci
Citat:
Stvari stoje sada ovako, sto se tice TextBox kontrole mislim da nece moci da mi prodje ta prica sa 3 odvojena box-a [mm] [dd] [yyyy]


To je toliko bezveze da čovek.. :) Nikad nećeš biti siguran za npr. "12/11/2004" - šta je tu dan a šta mesec. Ako imaš tri odvojena textbox-a, lako je kodirati da se fokus prebacuje sa jednog u drugi (slično kao kad upisuješ serijski # u Windows prilikom instaliranja) tako da ama baš nikakve funkcionalne razlike nema osim što se dobija mnogo jasniji formular za unos sa jasno označenim natpisom gde šta treba da se upiše.
Mislim da je svaka dalja priča na temu pomalo besmislena :)
Commercial-Free !!!
 
Odgovor na temu

bokac
Beograd

Član broj: 19866
Poruke: 110
*.dial.b92.net



Profil

icon Re: iz TextBox-a u DateTime !?13.05.2004. u 19:09 - pre 242 meseci
Pazi degojs stvar je u tome da covek za koga ovo pravim hoce to BAS tako, i sta ja sada tu dodatno mogu da ucinim osim da mu predlozim nesto drugo (sa argumentima), a on to eventualno prihvati. Naravno postoje i tu neka dodatna pomagala ka npr. Label pored TextBox kontrole na kome pise (mm-dd-yyyy) i sl. kako bi korisnika podsetilo i uputilo na pravilno unosenje podataka. Da se ja tu pitam uzeo bih onaj datetimepicker ili kako se vec zove i resio stvar bez ikakve muke.
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: iz TextBox-a u DateTime !?13.05.2004. u 19:24 - pre 242 meseci
Pa jasno mi je, zato i kažem da je možda i besmisleno da sad razvlačimo dalje temu, pošto je teško da se uradi nešto kad su stvari već tako postavljene.
Commercial-Free !!!
 
Odgovor na temu

ZokiR
Zoran Radojković
Melburn, Australija

Član broj: 15986
Poruke: 109
*.nexnet.net.au



Profil

icon Re: iz TextBox-a u DateTime !?14.05.2004. u 02:06 - pre 242 meseci
Bokac, kao što ti je Dragi Tata gore napisao, ne bi trebalo da tekst iz TextBox-a direktno ubacuješ u SQL. Umesto toga, koristi SqlCommand.Parameters i SqlDateTime tip. Ako ti nije jasno zašto, izgugliraj "sql injection".

Takođe, ne bi bilo loše da ti JavaScript na klijentu odradi formatiranje ("masking") i validaciju unetog datuma, a onda to proveriš još jednom na serveru za svaki slučaj. Potraži po internetu, ima dosta takvih skripta -- npr. http://javascript.internet.com/forms/format-date.html
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: iz TextBox-a u DateTime !?14.05.2004. u 08:06 - pre 242 meseci
Citat:
bokac:
se i dodatni problem a to je kako da formatiram da "korisnik" unese i format datuma npr. 20.5.2004. (dd.mm.yyyy), posto SQL Server u mom slucaju samo "guta" (mm.dd.yyyy) ili

Ovako "progutaš" ono što je korisnik uneo:
Code:

string strdate = "21.5.2004"; // odnosno TextBox1.Text
CultureInfo ci = new CultureInfo("sr-SP-Latn");
DateTime d = DateTime.Parse(strdate, ci);

Posle toga proslediš ovo stored proceduri kroz SqlParameter i to bi trebalo da radi.
 
Odgovor na temu

[es] :: .NET :: iz TextBox-a u DateTime !?

Strane: 1 2

[ Pregleda: 5657 | Odgovora: 20 ] > FB > Twit

Postavi temu Odgovori

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