Avatar billede gurvic Nybegynder
18. maj 2004 - 12:55 Der er 5 kommentarer og
1 løsning

sammenligning af to strings

ok er her nogen der kan se hvorfor det her går galt??
i min db er kolonnen dagensret et tekstfelt som indeholder en dato, på denne form 18-05-2004. Jeg forsøger så at sammenligne den kollone med dags dato, begge til string og findes der en forekomst af dags dato i min db, skal den bare skrive jubii...
men det virker ikke... hvorfor?
her er min kode:

sql_dato = "select dagensret, opskriftid from opskrift";
datoCommand = new OleDbCommand(sql_dato, objConnection);
   
datoReader = datoCommand.ExecuteReader();
           
while (datoReader.Read())
{       
        if (DateTime.Now.ToShortDateString() == datoReader.GetString(0))
        {
        Response.Write("jubii");
        }
        else
        {
        Response.Write("hmm");
        }
}
Avatar billede stefan_v Nybegynder
18. maj 2004 - 13:50 #1
Prøv eventuelt at udskrive de to datoer, for visuelt at se om strengene ser ens ud...

while (datoReader.Read())
{
  Response.Write(DateTime.Now.ToShortDateString() + " == ");
  Response.Write(datoReader.GetString(0) + "?<br />);
}
Avatar billede gurvic Nybegynder
18. maj 2004 - 14:09 #2
det er prøvet og de ser begge sådan her ud : 18-05-2004, så forstår det ikke helt
Avatar billede gurvic Nybegynder
18. maj 2004 - 14:11 #3
jeg har også prøvet at lave en GetFieldType for at sikre at det jeg henter fra db er string og den er også god nok
Avatar billede stefan_v Nybegynder
18. maj 2004 - 14:23 #4
Hvad med at sammenligne på DateTime-niveau?

altså:

if (DateTime.Now == DateTime.Parse(datoReader[0].ToString()))

Sommetider sker der noget i konverteringen til String, som jeg aldrig i mit liv vil forstå... Datoer er IKKE din ven. :)
Avatar billede gurvic Nybegynder
18. maj 2004 - 14:36 #5
så kommer den her fejl...
System.FormatException: Strengen blev ikke genkendt som en gyldig DateTime.

nej datoer er noget skod... husker det desværre kun alt for godt fra asp, men syntes om muligt det er endnu værre her i asp.net
Avatar billede gurvic Nybegynder
18. maj 2004 - 14:58 #6
ok fandt selv en løsning, lavede feltet i min db om til dato og brugte denne løsning

while (datoReader.Read())
{               
System.DateTime dato;
dato = new System.DateTime(System.DateTime.Today.Ticks);
       
System.DateTime tester;
tester = datoReader.GetDateTime(0);

bool drFindes = System.DateTime.Equals(dato, tester);
                   
if (drFindes = true)
        {
        Response.Write("jubii");
        }
        else
        {
        Response.Write("hmm");
        }
}



stefan_v: takker for hjælpen, datoer er bare noget l...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester