Avatar billede mmbn Nybegynder
09. august 2005 - 13:48 Der er 5 kommentarer og
1 løsning

dataset manipulering

hvis jeg har et dataset der ser nogenlunde således ud:
<NewDataSet>
  <Table>
    <TABELTITEL>ABSENCE_REASON</TABELTITEL>
    <FELTDEFTITEL>ABS_REASON_NO</FELTDEFTITEL>
    <ORDINAL_POSITION>1</ORDINAL_POSITION>
    <DATATYPE>NUMBER</DATATYPE>
    <LENGTH>22</LENGTH>
    <SCALE>0</SCALE>
    <FELTINFO.</FELTINFO>
  </Table>
  <Table>
    <TABELTITEL>ABSENCE_REASON</TABELTITEL>
    <FELTDEFTITEL>ABS_REASON_DESC</FELTDEFTITEL>
    <ORDINAL_POSITION>2</ORDINAL_POSITION>
    <DATATYPE>VARCHAR2</DATATYPE>
    <LENGTH>40</LENGTH>
    <FELTINFO></FELTINFO>
  </Table>
  <Table>
    <TABELTITEL>ABSENCE_REASON</TABELTITEL>
    <FELTDEFTITEL>ACTIVE_FLAG</FELTDEFTITEL>
    <ORDINAL_POSITION>3</ORDINAL_POSITION>
    <DATATYPE>CHAR</DATATYPE>
    <LENGTH>1</LENGTH>
    <FELTINFO.</FELTINFO>
  </Table>
  <Table>
    <TABELTITEL>ABSENCE_REASON</TABELTITEL>
    <FELTDEFTITEL>EDIFACT</FELTDEFTITEL>
    <ORDINAL_POSITION>4</ORDINAL_POSITION>
    <DATATYPE>CHAR</DATATYPE>
    <LENGTH>1</LENGTH>
    <FELTINFO.</FELTINFO>
  </Table>
  <Table>
    <TABELTITEL>ACTION</TABELTITEL>
    <FELTDEFTITEL>C_CPR_NO</FELTDEFTITEL>
    <ORDINAL_POSITION>1</ORDINAL_POSITION>
    <DATATYPE>CHAR</DATATYPE>
    <LENGTH>10</LENGTH>
    <FELTINFO.</FELTINFO>
  </Table>
  <Table>
    <TABELTITEL>ACTION</TABELTITEL>
    <FELTDEFTITEL>PROBLEM_NO</FELTDEFTITEL>
    <ORDINAL_POSITION>2</ORDINAL_POSITION>
    <DATATYPE>NUMBER</DATATYPE>
    <LENGTH>22</LENGTH>
    <SCALE>0</SCALE>
    <FELTINFO.</FELTINFO>
  </Table>
  <Table>
    <TABELTITEL>ACTION</TABELTITEL>
    <FELTDEFTITEL>ACTION_NO</FELTDEFTITEL>
    <ORDINAL_POSITION>3</ORDINAL_POSITION>
    <DATATYPE>NUMBER</DATATYPE>
    <LENGTH>22</LENGTH>
    <SCALE>0</SCALE>
    <FELTINFO</FELTINFO>
  </Table>
  <Table>
    <TABELTITEL>ACTION</TABELTITEL>
    <FELTDEFTITEL>INI</FELTDEFTITEL>
    <ORDINAL_POSITION>4</ORDINAL_POSITION>
    <DATATYPE>CHAR</DATATYPE>
    <LENGTH>10</LENGTH>
    <FELTINFO>+</FELTINFO>
  </Table>
  og jeg ønsker at splitte det i to seperate datasets , hvor de adskilles af tabeltitlerne, hvordan gør jeg så det?
i det her tilgælde et dataset med absence_reason og et med action
Avatar billede mmbn Nybegynder
09. august 2005 - 13:57 #1
så man har to seperate set bestående af:
<NewDataSet>
  <Table>
    <TABELTITEL>ABSENCE_REASON</TABELTITEL>
    <FELTDEFTITEL>ABS_REASON_NO</FELTDEFTITEL>
    <ORDINAL_POSITION>1</ORDINAL_POSITION>
    <DATATYPE>NUMBER</DATATYPE>
    <LENGTH>22</LENGTH>
    <SCALE>0</SCALE>
    <FELTINFO.</FELTINFO>
  </Table>
  <Table>
    <TABELTITEL>ABSENCE_REASON</TABELTITEL>
    <FELTDEFTITEL>ABS_REASON_DESC</FELTDEFTITEL>
    <ORDINAL_POSITION>2</ORDINAL_POSITION>
    <DATATYPE>VARCHAR2</DATATYPE>
    <LENGTH>40</LENGTH>
    <FELTINFO></FELTINFO>
  </Table>
  <Table>
    <TABELTITEL>ABSENCE_REASON</TABELTITEL>
    <FELTDEFTITEL>ACTIVE_FLAG</FELTDEFTITEL>
    <ORDINAL_POSITION>3</ORDINAL_POSITION>
    <DATATYPE>CHAR</DATATYPE>
    <LENGTH>1</LENGTH>
    <FELTINFO.</FELTINFO>
  </Table>
  <Table>
    <TABELTITEL>ABSENCE_REASON</TABELTITEL>
    <FELTDEFTITEL>EDIFACT</FELTDEFTITEL>
    <ORDINAL_POSITION>4</ORDINAL_POSITION>
    <DATATYPE>CHAR</DATATYPE>
    <LENGTH>1</LENGTH>
    <FELTINFO.</FELTINFO>
  </Table>
og
<NewDataSet>
    <Table>
    <TABELTITEL>ACTION</TABELTITEL>
    <FELTDEFTITEL>C_CPR_NO</FELTDEFTITEL>
    <ORDINAL_POSITION>1</ORDINAL_POSITION>
    <DATATYPE>CHAR</DATATYPE>
    <LENGTH>10</LENGTH>
    <FELTINFO.</FELTINFO>
  </Table>
  <Table>
    <TABELTITEL>ACTION</TABELTITEL>
    <FELTDEFTITEL>PROBLEM_NO</FELTDEFTITEL>
    <ORDINAL_POSITION>2</ORDINAL_POSITION>
    <DATATYPE>NUMBER</DATATYPE>
    <LENGTH>22</LENGTH>
    <SCALE>0</SCALE>
    <FELTINFO.</FELTINFO>
  </Table>
  <Table>
    <TABELTITEL>ACTION</TABELTITEL>
    <FELTDEFTITEL>ACTION_NO</FELTDEFTITEL>
    <ORDINAL_POSITION>3</ORDINAL_POSITION>
    <DATATYPE>NUMBER</DATATYPE>
    <LENGTH>22</LENGTH>
    <SCALE>0</SCALE>
    <FELTINFO</FELTINFO>
  </Table>
  <Table>
    <TABELTITEL>ACTION</TABELTITEL>
    <FELTDEFTITEL>INI</FELTDEFTITEL>
    <ORDINAL_POSITION>4</ORDINAL_POSITION>
    <DATATYPE>CHAR</DATATYPE>
    <LENGTH>10</LENGTH>
    <FELTINFO>+</FELTINFO>
  </Table>
Avatar billede anadan Nybegynder
09. august 2005 - 14:07 #2
Det nemmeste vil være at loade det ind i et XmlDataDocument, lave to nye (action, absence_reason), tjekke på tabeltitel, og så kopiere hver XmlNode over i det rette XmlDataDocument.
Avatar billede anadan Nybegynder
09. august 2005 - 14:08 #3
Læg mærke til at der er nogle fejl i dit data-set ex. <FELTINFO</FELTINFO>
<FELTINFO.</FELTINFO>, og der mangler et end-tag
Avatar billede mmbn Nybegynder
09. august 2005 - 14:12 #4
god ide, smid et svar kæmper lige med det, men skal nok få det til at lykkedes :)
Avatar billede anadan Nybegynder
09. august 2005 - 14:22 #5
Okay, her er lidt til at komme i gang med..

string xml = @"<NewDataSet>
  <Table>
    <TABELTITEL>ABSENCE_REASON</TABELTITEL>
    <FELTDEFTITEL>ABS_REASON_NO</FELTDEFTITEL>
    <ORDINAL_POSITION>1</ORDINAL_POSITION>
    <DATATYPE>NUMBER</DATATYPE>
    <LENGTH>22</LENGTH>
    <SCALE>0</SCALE>
    <FELTINFO>.</FELTINFO>
  </Table>
  <Table>
    <TABELTITEL>ACTION</TABELTITEL>
    <FELTDEFTITEL>C_CPR_NO</FELTDEFTITEL>
    <ORDINAL_POSITION>1</ORDINAL_POSITION>
    <DATATYPE>CHAR</DATATYPE>
    <LENGTH>10</LENGTH>
    <FELTINFO>.</FELTINFO>
  </Table>
</NewDataSet>";

XmlDataDocument doc = new XmlDataDocument();
           
doc.LoadXml(xml);

foreach(XmlNode node in doc["NewDataSet"].ChildNodes)
{
    if(node["TABELTITEL"].InnerText=="ACTION")
    {
        ...
    }
    else if(node["TABELTITEL"].InnerText=="ABSENCE_REASON")
    {
        ...
    }

}
Avatar billede mmbn Nybegynder
09. august 2005 - 14:31 #6
super 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