webForumDet fria alternativet

Arraylist, ett alternativ ?

.NETur .NET

8 svar · 339 visningar · startad av erka

erkaMedlem sedan dec. 19996 522 inlägg
#1

Hej!

Sitter och bygger en funktion som ska hämta ut x. antal kolumner och x. antal rader från en databas och lägga över denna data till någon form av array. Mitt problem är att jag vill ha datan i 2 dimensioner

     col1    col2    col3    col4

rad1 x x x x
rad2 x x x x

osv.

Kan man ha det i en arraylist och isåfall hur fyller jag på min arraylist på smidigast sätt när jag loopar igenom min datareader

Dim myArrayList As New ArrayList()
Dim Index As Integer = 0

For Index = 0 To myDataReader.FieldCount - 1
  ??
Next

Annars, vad finns det för andra alternativ, haschtable ?

juventus1Medlem sedan dec. 2000399 inlägg
#2

Det smidigaste är kanske att skapa en Object[myDataReader.FieldCount - 1] och sedan lägga in varje kolumn där och sedan stoppa arrayen i en ArrayList.

En lösningar kan vara att köra en extra sql-fråga som räknar posterna du vill plocka ut. Då kan du sedan dimensionera en vanlig array efter det.

En annan lösning kan vara en Hashtable där nyckeln i din hashtable är nyckeln i databasen och value är en ArrayList med alla kolumner i.

PMedlem sedan jan. 20012 204 inlägg
#3

Hmm har också problem om vad jag ska använda. Har ett flertal DataSets med flera tables i varje. Jag vill Returnera alla dessa till mitt presentationslager. Hur gör jag bäst?

Funderade på: Dim lala() as DataSet, men hur lägger jag till dem i koden då? Finns ju ingen .Add metod.

juventus1Medlem sedan dec. 2000399 inlägg
#4

Kanske returnera en array av dataset? Eller om du på något sätt kan lägga in alla tabeller i samma dataset.

renholmMedlem sedan apr. 20012 266 inlägg
#5

ArrayList array = new ArrayList();
array.Add(new string[] {"Värde 1","Värde 2"});

Ungefär så?

erkaMedlem sedan dec. 19996 522 inlägg
#6

Renholm, hajjar inte det där riktigt, vb skadat tror jag ;)

Jag är ute efter att loopa igenom en datareader, lägga det i någon form av collection som är två dimensionell, det borde ju finnas i .net ramverket tycker man.

NickemannenMedlem sedan aug. 20003 575 inlägg
#7
string[][] strDimisionell = new string[14][34];

Minns inte exakt om det var såhär men något liknande.
Om jag nu har fattat rätt vad du menar.

erkaMedlem sedan dec. 19996 522 inlägg
#8

merci :)

renholmMedlem sedan apr. 20012 266 inlägg
#9

erka: du kan antingen tillverka dig egna klasser som passar för dina behov eller använda arrays som exemplen ovan visar.

Exempel på klass (väldigt basic)

public class TvaDimensioner
{
   public string bla1;
   public string bla2;
}

eller använda en hastable vilket har två dimensioner.

131 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)