[ wex-alpha @ 07.09.2011. 13:54 ] @
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);

[ Shadowed @ 09.09.2011. 17:29 ] @
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.
[ wex-alpha @ 11.09.2011. 22:51 ] @
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?
[ sallle @ 12.09.2011. 11:30 ] @
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 )
[ wex-alpha @ 12.09.2011. 11:32 ] @
Odlican savjet :)

Hvala.