Avatar billede pablopablo Nybegynder
25. oktober 2003 - 23:45 Der er 1 kommentar og
1 løsning

Hjælp til DataTable/DataRow!

Hejsa...

Jeg har længe siddet og rodet med dette, men kan ikke få det til at funge...! :(

Jeg har en DataTabel med 4stk kolonner...

Jeg hiver én række ud sådan her :

DataRow[] række = dt1.Select("Navn='" + element + "'");   

dt1 er min DataTabel og  "element" er blot en variable som indeholder et navn...

Jeg har faktisk KUN brug for at hive én række ud af gangen, men den vil ikke tillade at jeg sletter "[]" fra linien?? hvorfor?

Mit spg. er nu, hvordan får jeg fat i indholdet af DataRow objekterne...????
Fx. hvis jeg ønsker at skrive alle objekternes attributter ud i et tekstfelt, for den række som er blevet hevet ud af dt1...?

Dette er hvordan jeg har prøvet at gøre det...

for(int i = 0; i < række.Length; i ++)
{               
textBox2.Text+=række[i].Table.Columns.IndexOf("Kategori");
textBox2.Text+=række[i].Table.Columns.IndexOf("Vare");
textBox2.Text+=række[i].Table.Columns.IndexOf("Pris");
textBox2.Text+=række[i].Table.Columns.IndexOf("Butik");
}

lige meget hvordan jeg skriver det, skriver den KUN navnet på Varen ud...?-(

Håber MEGET i kan hjælpe mig!!!!!!

mvh. Martin
Avatar billede nielslbeck Nybegynder
26. oktober 2003 - 15:49 #1
Grunden til, at du får et array tilbage fra Select() er, at der ikke er nogen garanti for, at det du skriver du vil finde (her er det "Navn=...") er unikt. Dvs at man i visse situationer vil få mere end et enkelt element ud, og derfor bliver Select() nødt til at være lavet så generelt som muligt, dvs at den returnerer et array.

Hvis du er 100% sikker på, at der er ét og kun ét element i arrayet kan du få fat i det ved at sige enten:

DataRow[] række = dt1.Select("Navn='" + element + "'")[0];

eller

DataRow[] rækker = dt1.Select("Navn='" + element + "'");
DataRow række = rækker[0];

eller endnu bedre:

DataRow[] rækker = dt1.Select("Navn='" + element + "'"); 
if (rækker.Length != 0)
  throw new Exception("Stor fejl her!");
DataRow række = rækker[0];

Den sidste løsning er klart at foretrække - evt med mindre modificeringer. Men pointen er, at du skal sørge for at tjekke for fejl. Selvom du mener du er 100% sikker på, at der er ét og kun ét element er det nu skønt at være sikker...

Når du så senere vil udskrive indholdet, kan det gøres sådan:

textBox2.Text = række["Kategori"] + ", " + række["Vare"] + ", " + række["Pris"] + ", " + række["Butik"];

Håber det var svar nok - men ellers finder vi jo nok ud af det :-)
Avatar billede pablopablo Nybegynder
23. november 2003 - 18:39 #2
Sorry...jeg har været så længe om at give dig points....men jeg fandt selv ud af det i mellemtiden...min siden du har svaret mig, skal du også belønnes!

200points!

mvh. PabloPablo
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