Avatar billede jensbo Nybegynder
26. februar 2008 - 14:45 Der er 13 kommentarer og
1 løsning

IndexOutOfRangeException efter Columns.Remove("Navn")

Hej

Jeg har lidt problemer med at udføre en multi select DataTable.Select("TEST = '1' AND TEST = '2'") på en DataTable efter jeg har fjernet nogen Columns også efter at jeg har .AcceptChanges();

Jeg kan godt lave en select på en enkelt kolonne men ikke flere på engang.

Håber der er nogen der kan hjælpe.
Avatar billede nielle Nybegynder
26. februar 2008 - 17:31 #1
Denne:

DataTable.Select("TEST = '1' AND TEST = '2'")

vil aldrig finde noget, men det vil det måske emd en OR:

DataTable.Select("TEST = '1' OR TEST = '2'")
Avatar billede jensbo Nybegynder
26. februar 2008 - 18:08 #2
Det er jeg godt klar over.  DataTable.Select("TEST = '1' AND TEST = '2'") var nu mere tænkt som et eks.  Skulle nok ha været DataTable.Select("Kolonne1 = '1' AND Kolonne1 = '2'").
Avatar billede jensbo Nybegynder
26. februar 2008 - 18:09 #3
UPS  : DataTable.Select("Kolonne1 = '1' AND Kolonne2 = '2'").
Avatar billede nielle Nybegynder
26. februar 2008 - 18:09 #4
Heh ;^)

Kan du vise noget kode hvor at du har problemet?
Avatar billede jensbo Nybegynder
26. februar 2008 - 18:14 #5
Ikke lige nu, kan først gøre det imorgen.
Avatar billede jensbo Nybegynder
26. februar 2008 - 18:17 #6
Men det er når jeg laver en Select på en DataTable, efter jeg har fjernet nogen kolonner.  Selecten medfører en IndexOutOfRangeException.
Avatar billede nielle Nybegynder
26. februar 2008 - 20:47 #7
Jeg kan ikke umiddelbart fremprovokere din fejl:

            DataTable dt = new DataTable();

            DataColumn dc = new DataColumn("col1", typeof(int));
            dt.Columns.Add(dc);

            dc = new DataColumn("col2", typeof(string));
            dt.Columns.Add(dc);

            dc = new DataColumn("col3", typeof(int));
            dt.Columns.Add(dc);

            DataRow dr = dt.NewRow();
            dr["col1"] = 1; dr["col2"] = "Gorilla"; dr["col3"] = 1;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["col1"] = 2; dr["col2"] = "Orangutang"; dr["col3"] = 2;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["col1"] = -1; dr["col2"] = "Lemur"; dr["col3"] = 3;
            dt.Rows.Add(dr);

            DataRow[] drArr = dt.Select("col1 = 1 OR col3 = 3");
            Console.WriteLine(drArr.Count());

            dt.Columns.Remove("col2");

            drArr = dt.Select("col1 = 1 OR col3 = 3");
            Console.WriteLine(drArr.Count());
Avatar billede jensbo Nybegynder
26. februar 2008 - 20:52 #8
Det kan jeg godt se :) Men jeg vender lige tilbage imorgen.
Avatar billede jensbo Nybegynder
27. februar 2008 - 10:47 #9
Der er ret meget kode.  Kan ikke lige paste det hele ind da det er en del af en applikation.
Avatar billede jensbo Nybegynder
27. februar 2008 - 13:11 #10
Jeg kan se at der er knyttet en dataSource fra en XML skema.  Hvilket nok er problemet.  Skal lige ha kigget lidt på det.
Avatar billede nielle Nybegynder
03. marts 2008 - 17:39 #11
Er du kommet vidre med denne her?
Avatar billede jensbo Nybegynder
03. marts 2008 - 19:35 #12
Ja! Jeg vil gerne give dig point for din hjælp.  Men jeg kan ikke lige finde udaf hvordan man gør.  Lavede det på en anden måde:)
Avatar billede nielle Nybegynder
04. marts 2008 - 06:47 #13
Du skal bare bede mig om at smide et svar - så er det muligt at give point.

Svar :^)
Avatar billede jensbo Nybegynder
04. marts 2008 - 09:08 #14
Fint nok
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