Avatar billede bumle90 Nybegynder
13. august 2004 - 17:02 Der er 23 kommentarer og
2 løsninger

skal jeg bruge reflection?

Jeg har et databaseudtræk hvor jeg bruger getValue når jeg hiver data ud. Netop fordi jeg ikke på forhånd ved hvad jeg trækker ud.
getValue retunerer jo som bekendt et "object".
Hvordan får jeg konverteret dette object til dens rette type...således at jeg kan bruge dets metoder..?
Avatar billede repsak Nybegynder
13. august 2004 - 17:05 #1
hvorfor ved du ikke hvad du trækker ud? Hvilke muligheder er der for udtræk?
Avatar billede bumle90 Nybegynder
13. august 2004 - 17:07 #2
Det gør jeg ikke fordi jeg kører alle felter igennem i en forløkke. Derfor slipper jeg for at definere hvert eneste felt. Der er MANGE felter
Avatar billede bumle90 Nybegynder
13. august 2004 - 17:09 #3
+ at konstruktøren der kører igennem readeren gør det på forskellige tabeller...
Avatar billede snepnet Nybegynder
13. august 2004 - 17:09 #4
Hvis du henter det ind i et dataset istedet, får du alt den information du har brug for automatisk.
Avatar billede snepnet Nybegynder
13. august 2004 - 17:10 #5
Og du kan proppe alle de tabeller ind i det du vil.
Avatar billede bumle90 Nybegynder
13. august 2004 - 17:12 #6
Mmm okay, det eneste jeg vil er at køre min reader igennem, og hvis den hiver en dato ud skal den formateres på en bestemt måde før den bliver lagt ned i mit HashTable...Det er det jeg vil.
Avatar billede snepnet Nybegynder
13. august 2004 - 17:13 #7
Her er et eksempel :

SqlConnection con = new SqlConnection("");
SqlCommand com = new SqlCommand("",con);
SqlDataAdapter adap = new SqlDataAdapter(com);

DataSet ds = new DataSet();
adap.Fill(ds);

Der er lige et par blanks du selv skal fylde ud :o)
Avatar billede bumle90 Nybegynder
13. august 2004 - 17:13 #8
Og jeg synes ikke det er specielt pænt at skrive : if(val.getType().toString=="navnet på klassen") doStuff
Avatar billede arne_v Ekspert
13. august 2004 - 17:13 #9
En meget pragmatisk løsning ville være at kalde ToString påd et du henter ud !
Avatar billede arne_v Ekspert
13. august 2004 - 17:15 #10
Jeg kan kun se mulighederne:
1)  du tester på typen og caster efter hvad det er
2)  du gemmer original objekt i din Hashtable
3)  du bruger ToString til at normalisere alt til string
Avatar billede bumle90 Nybegynder
13. august 2004 - 17:16 #11
Er der virkelig ikke en måde at caste objectet tilbage til dets oprindelige form?
Heller ikke ved brug af reflection?
Avatar billede snepnet Nybegynder
13. august 2004 - 17:19 #12
Du kan også checke typer sådan her :

foreach(DataRow dr in ds.Tables[0].Rows)
{
    foreach(DataColumn dc in dr.Table.Columns)
    {
        if(dc.DataType == typeof(DateTime))
        {
            // hvad du så vil gøre.
        }
    }
}
Avatar billede arne_v Ekspert
13. august 2004 - 17:19 #13
Objektet er i sin oprindelige form.

Din kode ved bare ikke hvad den oprindelige type er.
Avatar billede snepnet Nybegynder
13. august 2004 - 17:19 #14
og du kan så caste :
DateTime t = (DateTime)dr[dc];
Avatar billede snepnet Nybegynder
13. august 2004 - 17:19 #15
er du vimmer hvor der krydses i øjeblikket :o)
Avatar billede snepnet Nybegynder
13. august 2004 - 17:21 #16
Men bortset fra det.... hvordan fremviser du dine data ?
(der er mange måde at opnå sådan en formattering på)
Avatar billede bumle90 Nybegynder
13. august 2004 - 17:31 #17
ja....snepnet...Jeg bruger den måde der. Jeg gør det bare på min reader istedet...Det er nok den pæneste måde at gøre det på.
Avatar billede bumle90 Nybegynder
13. august 2004 - 17:31 #18
Hvordan jeg fremviser mine date...jahhh jeg vil gerne ha dem i formatet
yyyy-MM-dd.
Men det er vidst ikke lige så let....hmmm
Avatar billede snepnet Nybegynder
13. august 2004 - 17:32 #19
så kan jeg måske endda vove et svar ?
Avatar billede bumle90 Nybegynder
13. august 2004 - 17:32 #20
Jeg kan bruge System.Globalization.DateTimeFormatInfo men jeg kan ikke lige se hvordan jeg skal få overført formatet til mit DateTime objekt
Avatar billede bumle90 Nybegynder
13. august 2004 - 17:33 #21
ja...jeg vil gerne gi point til jer begge hvis det er i orden :)
Hvis Arne også lige smider et svar....
Avatar billede snepnet Nybegynder
13. august 2004 - 17:34 #22
jo det er ikke så vanskeligt... Du kan bare lave en ToString("yyyy-MM-dd") på dit datetime object.
Avatar billede snepnet Nybegynder
13. august 2004 - 17:34 #23
så smider han jo nok et svar om lidt :o)
Avatar billede arne_v Ekspert
13. august 2004 - 17:35 #24
svar
Avatar billede bumle90 Nybegynder
13. august 2004 - 17:39 #25
Genialt :D
Tak  for superhurtig og god hjælp.
værsgo....
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