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

validacija datuma

[es] :: .NET :: validacija datuma

[ Pregleda: 3411 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vinkof
Vinko Fafanđel
odgajatelj, dzo-ri
Hrvatska, Rijeka

Član broj: 206760
Poruke: 54
*.dsl.iskon.hr.

Sajt: www.croatia-islandrab.com


Profil

icon validacija datuma15.09.2009. u 20:35 - pre 177 meseci
Želim da klijent u formularu ne može izabrati datum manji od današnjeg.

Imam textBox sa CalendarExtenderom i CompareValidator koji provjerava datum u textBox-u sa trenutnim datumom. Vrijednost za usporedbu punim iz codebehind ovako:
CompareValidatorDolazak.ValueToCompare = Date.Now.Date .

Sve je u redu dok je Format CalendarExtendera MM/dd/yyyy jer Date.Now.Date vraća upravo taj format. Promjenim li taj format u CalendarExtenderu dolazi do nepravilne usporedbe datuma u text boxu i trenutnog (npr. ne prepoznaje datum 27.08.2009 kao manji od 08/30/2009).
Promjenom formata u codebehind vraćena vrijednost Date.Now.Date mijenja se u String i tada mi javlja grešku da ne može String pretvoriti u Date.
Promjenim li Tip podatka koji se provjerava, u CompareValidator-u u String, onda dobro uspoređuje samo datume istog mjeseca.

Možda je osnovni problem: kako promjeniti u format datuma u codebehind, za Date.Now.Date, a da tip i dalje ostane Date, a ne String?

Provao sam ovako:CType(Format(Date.Now.Date, "dd.MM.yyyy"), Date), ali mi javlja
"Conversion from string "30.08.2009" to type 'Date' is not valid."


 
Odgovor na temu

markopadjen
Marko Pađen
Paraćin

Član broj: 182243
Poruke: 22
79.101.154.*



+1 Profil

icon Re: validacija datuma15.09.2009. u 20:42 - pre 177 meseci
Ako napišeš ovo na početku programa, sve operacije iz MAIN thread-a će imati regionalna podešavanja zadata komandom.
Znači, ako praviš nove tredove, dodaš ovo na početku svakog.

3098 - je srpski/ćirilica i nezavisno je od OS-a. Ako staviš npr Sr-Cyr, na nekim Windowsima neće prepoznati.

Link za druge vrednosti

Code:
System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo(3098)

 
Odgovor na temu

vinkof
Vinko Fafanđel
odgajatelj, dzo-ri
Hrvatska, Rijeka

Član broj: 206760
Poruke: 54
*.dsl.iskon.hr.

Sajt: www.croatia-islandrab.com


Profil

icon Re: validacija datuma15.09.2009. u 22:04 - pre 177 meseci
Hvala majstore. sada sve radi.

Jedino što sam stavio "en-GB" a ne broj kao što si rekao, jer su u onoj tablici neki čudni brojevi. Recimo za srpski-ćirilica je 0x0C1A, a ne 3098 kao što si napisao. Gdje mogu naći te brojeve?
 
Odgovor na temu

markopadjen
Marko Pađen
Paraćin

Član broj: 182243
Poruke: 22
79.101.154.*



+1 Profil

icon Re: validacija datuma16.09.2009. u 02:13 - pre 177 meseci
Nema na čemu.

Napisah već da ako staviš slovne oznake neće da radi na nekim sistemima. Konkretno, meni nije radilo na Visti.

0x0C1A je heksadecimalno za 3098

Npr, može u VB.NET-u da se napiše &C1A umesto 3098 i biće ok. A možeš i da otvoriš Windows Calculator (naučnu verziju) pa da konvertuješ heksadecimalne brojeve u decimalne, kao što sam ja uradio sa konkretnim primerom.

Takođe, ukoliko praviš aplikaciju za hrvatsko tržište, ukoliko navedeš 0x041A (1050) podesiće ti i zarez kao decimalni separator umesto tačke, staviće lokalna imena meseca, kao i KN za valutu... Što je, ako mene pitaš, i lepše i normalnije.
 
Odgovor na temu

nikitaGradov
Beograd

Član broj: 223576
Poruke: 206
*.ppp.panet.co.yu.



+3 Profil

icon Re: validacija datuma14.10.2009. u 09:59 - pre 176 meseci
Evo kakav ja imam problem.
Prilikom upisa u bazu, imam i polja tipa DateTime.
U RegionalSettings, u RegionalOptions stoji Serbian(latin), a format datuma je dd.MM.yyyy.
Prilikom upisa u bazu javlja se greska: 'The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value. The conversion of a char data type to a datetime data type resulted in an out-of-range datetiem value.'
Greska se ne javlja ako se u RegionalSettings format datuma podesi da bude prvo mjesec pa dan. Stavio sam CultureInfo(0x081A) za Serbian-Latin podesenja.

Ima li neko ideju kako da ovo prevazidjem ? (ako upis realizujem preko uskladistene procedure, problem se ne javlja, ali je meni trenutno potrebno da upis realizujem iz koda).

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

nikitaGradov
Beograd

Član broj: 223576
Poruke: 206
*.ppp.panet.co.yu.



+3 Profil

icon Re: validacija datuma14.10.2009. u 10:39 - pre 176 meseci
Citat:
nikitaGradov: Evo kakav ja imam problem.
Prilikom upisa u bazu, imam i polja tipa DateTime.
U RegionalSettings, u RegionalOptions stoji Serbian(latin), a format datuma je dd.MM.yyyy.
Prilikom upisa u bazu javlja se greska: 'The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value. The conversion of a char data type to a datetime data type resulted in an out-of-range datetiem value.'
Greska se ne javlja ako se u RegionalSettings format datuma podesi da bude prvo mjesec pa dan. Stavio sam CultureInfo(0x081A) za Serbian-Latin podesenja.

Ima li neko ideju kako da ovo prevazidjem ? (ako upis realizujem preko uskladistene procedure, problem se ne javlja, ali je meni trenutno potrebno da upis realizujem iz koda).

Hvala


Mozda nisam bio dovoljno jasan: ja zelim, zbog korisnika, da upisujem datum u formatu dd.MM.yyyy. Znaci, postoji INSERT xxxx, '14.10.2009',yyy i dobijam onu gresku, koju sam naveo. Ako sam dobro razumio SQL Server prihvata format datuma: MM/dd/yyyy?
Ako ovaj upis realizujem kroz uskladistenu proceduru, onda ovaj format dd.MM.yyyy glatko prolazi.

Dakle, kako da iz koda upisem format datuma dd.MM.yyyy u bazu?
Programming is fun, but writing good software is hard ...
 
Odgovor na temu

nikitaGradov
Beograd

Član broj: 223576
Poruke: 206
*.ppp.panet.co.yu.



+3 Profil

icon Re: validacija datuma14.10.2009. u 11:09 - pre 176 meseci
Ja sam, izgleda, nasao rjesenje: treba koristiti GetDate() (u SQL Serveru ovo je isto kao i DateTime.Now u C#-u: http://forums.asp.net/t/1087086.aspx).

U svakom slucaju bi me interesovalo da li j eneko imao ovakvih problema i kako ih je rjesavao?
Programming is fun, but writing good software is hard ...
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
*.psit.rs.

ICQ: 20785904


+4 Profil

icon Re: validacija datuma14.10.2009. u 11:22 - pre 176 meseci
ako prilikom upisa koristis parametre, uopste ne moras razmisljas o formatu

Code:

datetime tvojDatum;
sqlcommand komanda = new sqlcommand();
komanda.commandText = "insert into tabela (datum_polje) values (@d)";

komanda.parameters.Add(new Sqlparamer("@d",Sqldbtype.datetime)).Value = tvojDatum;

komanda.executenonquery();

(kod je samo skica)
 
Odgovor na temu

nikitaGradov
Beograd

Član broj: 223576
Poruke: 206
*.ppp.panet.co.yu.



+3 Profil

icon Re: validacija datuma14.10.2009. u 11:31 - pre 176 meseci
Citat:
sallle: ako prilikom upisa koristis parametre, uopste ne moras razmisljas o formatu

Code:

datetime tvojDatum;
sqlcommand komanda = new sqlcommand();
komanda.commandText = "insert into tabela (datum_polje) values (@d)";

komanda.parameters.Add(new Sqlparamer("@d",Sqldbtype.datetime)).Value = tvojDatum;

komanda.executenonquery();

(kod je samo skica)


Hvala ti, slazem se ... zato i prolazi uskladistena procedura, jer se u njoj zadaju parametri ...
Programming is fun, but writing good software is hard ...
 
Odgovor na temu

nikitaGradov
Beograd

Član broj: 223576
Poruke: 206
*.ppp.panet.co.yu.



+3 Profil

icon Re: validacija datuma19.10.2009. u 08:46 - pre 176 meseci
Mozda nekome bude od koristi, postoji i ovakvo rjesenje.

Ako zelimo upisati polje tipa DateTime, onda treba definisati: string vreme = DateTime.Now.ToString("yyyy-MM-dd"); i onda koristiti ovaj string gdje god treba upisati u bazu ovaj podatak o vremenu.

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

[es] :: .NET :: validacija datuma

[ Pregleda: 3411 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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