Avatar billede mmbn Nybegynder
23. maj 2005 - 14:34 Der er 21 kommentarer og
1 løsning

loop igenne Dataset find og erstat

Hvis jeg ønsker at gennemløbe et dataset (indeholdende oplysninger fra oracle db) og finde alle datatyper af typen CHAR og jeg så herefter ønsker at erstatte CHAR i dataset med string, hvordan gøres det?
Avatar billede the_party_dog Nybegynder
23. maj 2005 - 14:37 #1
Du skal nok over i noget foreach:

foreach(DataRow R in DATASET.Tables[0].Rows)
{
Her skal du så tilgå R, for at finde ud af det som du ønsker om din row.
}
Avatar billede mmbn Nybegynder
23. maj 2005 - 14:41 #2
jeg ved at datatyperne er placeret på R[3] (fra dit eksempel), men hvordan sammenliger og erstatter man? har prøvet med R[3].Equals("CHAR") men det virker ikke
Avatar billede the_party_dog Nybegynder
23. maj 2005 - 14:42 #3
Snakker vi om datatypen, som dækker hele din kolonne?
Avatar billede the_party_dog Nybegynder
23. maj 2005 - 14:44 #4
Du skal ikke rode i dine rows, du skal vel rode i hele dine kolonne, som er i dit dataset.

foreach(DataColumn C in DataSet.Tables[0].Columns)
{
C.DataType.Equals("CHAR");
}
Avatar billede mmbn Nybegynder
23. maj 2005 - 14:45 #5
ja
Avatar billede mmbn Nybegynder
23. maj 2005 - 14:49 #6
men hvordan erstatter jeg så typen?
Avatar billede mmbn Nybegynder
23. maj 2005 - 14:51 #7
skal jeg så
if(dc.DataType.Equals("Char"))
{
    et elle andet   
}
?
Avatar billede the_party_dog Nybegynder
23. maj 2005 - 14:52 #8
jo det skal du... Kigger lige på det :)
Avatar billede the_party_dog Nybegynder
23. maj 2005 - 14:55 #9
foreach(DataColumn C in DataSet.Tables[0].Columns)
{
if(C.DataType.ToString().Equals("CHAR"))
{
C.DataType = System.Type.GetType("System.String");
}
}
Avatar billede mmbn Nybegynder
23. maj 2005 - 14:55 #10
måske i retning af
dc.DataType.TypeHandle + resten?
Avatar billede mmbn Nybegynder
23. maj 2005 - 14:56 #11
og takker for din hurtige respons
Avatar billede the_party_dog Nybegynder
23. maj 2005 - 14:58 #12
Hvorfor vil du have dine kolonner om til string?
Avatar billede mmbn Nybegynder
23. maj 2005 - 15:04 #13
hvis jeg kigger på xml filen er datatypen stadig char
<Table>
    <TABELTITEL>XXX</TABELTITEL>
    <FELTDEFTITEL>XXX</FELTDEFTITEL>
    <ORDINAL_POSITION>3</ORDINAL_POSITION>
    <DATATYPE>CHAR</DATATYPE>
    <LENGTH>1</LENGTH>
    <FELTINFO>XXX</FELTINFO>
  </Table>
Avatar billede mmbn Nybegynder
23. maj 2005 - 15:06 #14
skal laves om fordi oplysningerne skal sendes i ISO format med krav fra modtageren
Avatar billede the_party_dog Nybegynder
23. maj 2005 - 15:14 #15
okay... Du skal lige huske at lave Dataset..AcceptChanges();
Avatar billede mmbn Nybegynder
23. maj 2005 - 15:17 #16
jeg fandt ud af det :)

smid et svar party dog
Avatar billede the_party_dog Nybegynder
23. maj 2005 - 15:18 #17
Hvordan endte det så med at blive? Skal jo også lære noget her ;)
Avatar billede mmbn Nybegynder
23. maj 2005 - 15:23 #18
det var på række niveau jeg havde misforstået det
foreach(DataRow dr in dSet.Tables[0].Rows)
{
if(dr[3].ToString().Equals("CHAR") || dr[3].ToString().Equals("CHAR2") ||
dr[3].ToString().Equals("VARCHAR") || dr[3].ToString().Equals("VARCHAR2"))
    {
      dr[3] = "string";
    }
}

ændret dSet inden der skrives xml og derefter skriv
takker for hjælpen og ideerne :)
Avatar billede the_party_dog Nybegynder
23. maj 2005 - 15:47 #19
Gør den det du gerne vil have den til? For mig ser det bare ikke ud som om det er typen du ændre, men selve værdien i rækken. Men hvis du fik det hen som du gerne vil have, er jeg kun glad for at jeg kunne være til noget der minder om hjælp :)
Avatar billede mmbn Nybegynder
24. maj 2005 - 12:03 #20
jeg fandt ud af at det var bare værdien der skulle ændres ja.
Avatar billede the_party_dog Nybegynder
24. maj 2005 - 12:57 #21
Ahhh... :) Så giver det alt sammen meget mening :) Held og lykke med resten af dit projekt :)
Avatar billede mmbn Nybegynder
24. maj 2005 - 13:26 #22
takker :)
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