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

Kako drugacije uraditi

[es] :: .NET :: .NET Desktop razvoj :: Kako drugacije uraditi

[ Pregleda: 1847 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
92.36.218.*



+13 Profil

icon Kako drugacije uraditi07.09.2011. u 13:54 - pre 152 meseci
Trebam iz baze, iz jednog columna uzeti vremensku vrijednost. Uporediti je sa danasnjim datumom. Ako je ta vrijednost prosla, onda upisati broj 0 u poseban column, ako nije prosla onda upisujem 1. Sve to treba ponovo upisati u bazu.

Napravio sam kod koji to radi. Vas pitam za savjet da li je to po vama ok, ili ima mjesta za optimizaciju.

Code:


try
            {

                foreach (DataRow row in dTable.AsEnumerable())
                {
                    string red = row["clando"].ToString();
                    DateTime vrijemeClanstva = DateTime.Parse(red);

                    if (DateTime.Compare(DateTime.Now, vrijemeClanstva) < 0)
                    {
                        row["aktivan"] = 1;
                        // pisi u bazu broj jedan
                    }

                    else
                    {
                        //pisi u bazu broj nula
                        row["aktivan"] = 0;
                    }
                }
            }
            catch (Exception a)
            {               
            
            }

            dAdapter.Update(dTable);


 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: Kako drugacije uraditi09.09.2011. u 17:29 - pre 152 meseci
Zasto podatak prvo pretvaras u string pa parsiras nazad u DateTime?
Ne moras koristiti DateTime.Compare(), mozes samo porediti datume sa manje/vece.
Za ovo bi ti mogla biti bolja stored procedura koju ces samo pozvati, da ne dovlacis podatke i vracas ih.
 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
*.dynamic.telemach.ba.



+13 Profil

icon Re: Kako drugacije uraditi11.09.2011. u 22:51 - pre 152 meseci
string red = row["clando"].ToString();
ta linija je skroz nepotrebna, jer je date zapisan u bazu kao string.

probao sam sa <> operatorima, ali nisam bas imao uspjeha. Bolje nego compare?
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
*.finsoft.co.yu.

ICQ: 20785904


+4 Profil

icon Re: Kako drugacije uraditi12.09.2011. u 11:30 - pre 152 meseci
zasto prevlaciti podatke, kad to moze sql da odradi...

Code:

update tabela set aktivan=0 where clando <getdate()


btw, tebi i ne treba ova kolona aktivan, vec u svim upitima samo proveravaj u uslovu da li je clando manji od trenutnog datuma.

Mozes i view napravis gde bi izracunavao kolonu aktivan( nesto tipa: select ..., case clando<getdate() then 1 else 0 end as activan from tabela )
 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
109.175.61.*



+13 Profil

icon Re: Kako drugacije uraditi12.09.2011. u 11:32 - pre 152 meseci
Odlican savjet :)

Hvala.
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Kako drugacije uraditi

[ Pregleda: 1847 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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