Avatar billede gulbaek Nybegynder
25. februar 2003 - 15:33 Der er 5 kommentarer og
3 løsninger

Indsæt object i DataSet

Hvis jeg f.eks. har et object af typen Kunde

Kunde kunde = new Kunde();

Hvordan kan jeg lige smide det ind i

DataSet dataset = new DataSet();
Avatar billede lgy Nybegynder
25. februar 2003 - 15:38 #1
Et dataset er i bund og grund xml så en måde kunne være at Xmlserialize dit object også addere det til dit dataset.

Hvad er formålet med at få objektet i et dataset??

LGY
Avatar billede gulbaek Nybegynder
25. februar 2003 - 16:07 #2
skal egentlig bare sende det igennem noget remoting
Avatar billede gulbaek Nybegynder
25. februar 2003 - 16:11 #3
Havde forsøgt mig med noget MarshalByRefObject men det gad ikke virke, så nu forsøger jeg at pakke objectet ned i et dataset, jeg får nemlig også returneret et dataset
Avatar billede gulbaek Nybegynder
25. februar 2003 - 18:58 #4
Kan jeg ikke godt få en forklaring på hvordan jeg bruge den Xmlserialize ?

Og er der slet ikke nogen som har en ide til hvordan jeg indsætter en object i et dataset, eller er der en bedre måde til at sende objecter igennem Remoting ?
Avatar billede lgy Nybegynder
25. februar 2003 - 19:43 #5
Xmlserialize fungere ved at anvende System.Xml.Xmlserialize.
Using System.Xml.Xmlserialize;

Ved at bruge dette namespace serialiseres public felter og properties til xml.

MemoryStream ms = new MemoryStream();
XmlSerializer xmls = new XmlSerializer(typeof(Kunde));
xmls.Serialize(ms, kunde1);
DataSet ds = new DataSet();
ds.ReadXml(ms);
ms.Close();

For at styrer Xmlserialization skulle du kigge i SDK'et under System.Xml.Xmlserialize

Prøv det her. Jeg har ikke den store erfaring med .NET Remoting, men det burde ikke være nødvendigt at pakke et objekt ind i et dataset. Nu kan du se hvad du får til at virke.
Avatar billede lgy Nybegynder
25. februar 2003 - 19:44 #6
using System.Xml.Serialization;
Avatar billede z42cool Nybegynder
26. februar 2003 - 21:45 #7
Hvorfor kan du ikke bare?

Kunde kunde = new Kunde();

DataSet ds = new DataSet();
ds.Tables.Add("Kunder");
ds.Tables["Kunder"].Columns.Add("Instanser");
ds.Tables["Kunder"].Rows.Add(new object[]{kunde});

Men hvad er det du gerne vil opnå ved at putte kunde ind i et dataset?
Avatar billede magune Nybegynder
03. marts 2003 - 10:39 #8
Det er ikke nødvendigt at indsætte objektet i et datasæt. Datasæt benyttes som regel til at modtage data fra forespørgsler på f.eks. ODBC forbindelser til databaser, hvor de så at sige bindes til en SQL forespørgsel.

Indsættelse i en database sker vha. en lidt anderledes funktionerende mekanisme, f.eks. i SQL (med parameterliste)

INSERT INTO tblCustomer ( lokationid, interessenttypeid, navn, adresse1, postnummer, land, telefon, fax, email, ansvarlig) VALUES (:lokationid, :interessenttypeid, :navn, :adresse1, :adresse2, :postnummer, :bynavn, :land, :telefon, :fax, :email, :ansvarlig)";

Når du laver dette er du nødt til at tage felterne ud af objektet og bruge dem i VALUES feltet i SQL forespørgslen.

At skrive dette i f.eks. C#  er lidt bøvlet, men det kan lade sig gøre.

Men til dit spørgsmål ...

Det du sikkert er ude på at gøre er noget i retning af at lave en liste a objekter og det gøres med en ArrayList (System.Collections),

ArrayList LokationEntries = new ArrayList();

.. loop start

Lokation myLoc = new Lokation();
.. Udfyld objektet
  myLoc.klsajdlaj = 123;
  LokationEntries.Add ( myLoc );
...loop slut // LokationEntries holder nu en liste af objekter

Hvis listen skal kopieres i eet hug gøres det på følgende måde (evt. ved returnering fra en metode).

Lokationer[] locs  = new Lokationer[LokationEntries.Count];
LokationEntries.CopyTo( locs );
return locs;



Men da der principielt kan være tale om forskellige type objekter kan du også tage dem ud enkeltvis og undersøge dem. :-)

God fornøjelse.
Magune

Skulle du virkeligt ville opbygge dit datasæt manuelt er der ingen vej udenom det svar der adressere opbygningen med at indsætte felter og udfylde dem. God fornøjelse med det også ;-)
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