Toon posts:

[asp.net] groot array probleem met vb

Pagina: 1
Acties:

Verwijderd

Topicstarter
if TopMenuParent <> "" then

dim root as integer = 0
dim int as integer
dim menuList() as string

while root <> 1


dim objTopmenuParent2 as new OdbcCommand ("select menu_parent, menu_id, menu_naam from menu where menu_id = " & menuid, objConn)
dim readerTopMenuParent2 as OdbcDataReader

dim menuparent as string
dim menuid2 as string
dim menunaam as string

objConn.open()
readerTopMenuParent2 = objTopmenuParent2.ExecuteReader(CommandBehavior.CloseConnection)
readerTopMenuParent2.read()
MenuParent = readerTopMenuParent2.Item("menu_parent")
menuid2 = readerTopMenuParent2.Item("menu_id")
menunaam = readerTopMenuParent2.item("menu_naam")
objConn.close()


if MenuParent = "" then


menuList(int) = "<a href=""bla.aspx?menuid= " & menuid & " "">home</a>"
root = 1

else

menuList(int) = "<a href=""bla.aspx?menuid=" & menuid & " "">" & menunaam & "</a>"

menuid = TopMenuParent
int += 1
root = 0
end if


zoals jullie hier zie heb ik een klein stukje code neergezet.
menulist is me array. die ik probeer te vullen, door dynamisch de waarde er aan te geven met int(gewoon een variable).
alles leuk en wel in een simpelle code werkt dit wel, maar hier niet. SNIK
wat doe ik in jezusnaam fout.

dit is de error
System.NullReferenceException: Object reference not set to an instance of an object.

op deze regel:
menuList(int) = "<a href=""bla.aspx?menuid=" & menuid & " "">" & menunaam & "</a>"

|:( |:( |:( |:( |:( ;( ;(
PLEASE HELP ME

Verwijderd

Topicstarter
op deze manier werkt dat gebeuren weer wel:

dim iets(3) as string
dim int as integer
int = 0


iets(int) = "bla"
int += 1
iets(int)= "verdomme"
int +=1
iets(int) = "dit kan wel"

response.write(iets(0) & "<Br>")
response.write(iets(1) & "<BR>" )
response.write(iets(2) & "<br>")

maar wat die ik in me vorige CODE fout???????????? IKKE NIET SNAPPE

  • whoami
  • Registratie: December 2000
  • Nu online
Je krijgt een nullreferenceexception, wat wil zeggen dat je een stuk geheugen probeert te gebruiken dat niet gealloceerd is.
Je zult dus moeten dat geheugen alloceren.

Als je bv volgende code uitvoert:
code:
1
2
Button b;
b.Text = "blaat";

Dan zal je ook een null pointer exception krijgen, b is nl. niet gealloceerd.
Doe je echter:
code:
1
2
Button b = new Button();
b.Text = "blaat";

Zal het wel werken, want dan heb je een object gecreërd. (new).

Je zal dus hetzelfde moeten doen met je array: Je moet je array declareren, maar je moet er ook geheugen voor alloceren.
code:
1
int[] myArray = new int[3];

(Kan zijn dat het niet de juiste syntax is, * whoami vind het nogal een vervelende array-syntax in .NET)

https://fgheysels.github.io/


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 00:27

mulder

ik spuug op het trottoir

Die error geeft aan dat er een variable niet is geinitialiseerd...

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
ik heb hem gevonden hoor mensen THANKS
dit moet er boven die menuList(int) regel staan
redim preserve menulist(int) "(zodat hij op nieuw gezet wordt

echt nu een ander probleempje
ik lees de array zo uit:

for index = 0 to UBound(menulist)

maar dan leest hij het laaste item dat erin gestopt is als eerst, maar ik wil het precies anders om dus het eerste item als eerste. hoe doe ik dat?

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 00:27

mulder

ik spuug op het trottoir

als index (0) de laatste is die er in is gestopt dan doe je toch iets fout.

oogjes open, snaveltjes dicht


  • whoami
  • Registratie: December 2000
  • Nu online
En ik geloof dat je toch nog een beetje teveel VB code gebruikt als je echt met VB.NET bezig bent.
Een arrary in .NET heeft nl. een property die aangeeft hoe groot die array is, je hebt dus die UBound imho niet nodig.
MyArray.Length oid.

https://fgheysels.github.io/


Verwijderd

Topicstarter
?
dan mag je me vertelle wat hier fout aan is?

redim preserve menulist(int)
menuList(int) = "<a href=""bla.aspx?menuid=" & menuid3 & " "">" & menunaam & "</a>"
int += 1

iedere keer als hij een menulist item toevoegd dan stopt hij die in de int +=1 (deze functie zit in een loopje.

dan wordt het:
1e item toch op 0 geplaatst
2e item toch op 1 geplaatst
3e item toch op 2 geplaatst
..............

als ik hem dan uitlees met die for index = 0 to UBound(menulist)
dan is het toch zo dat hij met index 0 begint en dus 1e item eerst op het scherm zet??

  • whoami
  • Registratie: December 2000
  • Nu online
Volgens mij (maar ik heb dan ook geen ervaring met VB.NET, wel met C#), moet je uw array niet redimmen, maar ga je de grootte gaan opgeven, en ga je iedere keer je teller verhogen en dan het item op de juiste plaats invoegen.
Je kunt anders ook altijd eens kijken naar ArrayList.

Trouwens, ik vind dat je verwarrende namen gebruikt voor jouw variablen. Ik bedoel maar, int als variable - naam :X. (In C++, C, Java, C#, ... is int een keyword).
Ik vraag me trouwens sterk af, of je wel ASP.NET en VB.NET gebruikt (want dat zeg je toch?)

https://fgheysels.github.io/


Verwijderd

Topicstarter
absoluut dat ik dat gebruik :-D

  • MisterData
  • Registratie: September 2001
  • Laatst online: 26-08 21:52
Nog een tip voor meneer topicstarter: gebruik de {code} {/code} tags :) (Moet je wel ff { omzetten in [ enzo :))

[ Voor 34% gewijzigd door MisterData op 28-11-2002 15:54 ]


Verwijderd

Topicstarter
maar is het niet mogelijk om een array andersom leeg te lezen????

zonder inderdaad een arraylist te moeten gebruiken, want heb inderdaad gezien dat die bestaan en redelijk geode werken. alleen dan moet ik me gehele code weer verandere en er zitte nu al heel wat uurtjes is hahaha

  • whoami
  • Registratie: December 2000
  • Nu online
Wel, dan moet je toch eens je oude VB gewoontes opzij zetten ofzo.

C# code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
int[] myArray = new int[5];
int getal = 1;
for( int i = 0; i < 5; i++ )
{
  getal++;
  myArray[i] = getal;
}

for(int i = 0; i < myArray.Length; i++)
{
   Console.WriteLine ("Array element at position " + i.ToString + " = " + myArray[i].ToString);
}

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Nu online
[nohtml]
Verwijderd schreef op 28 november 2002 @ 15:54:
maar is het niet mogelijk om een array andersom leeg te lezen????
Tuurlijk wel. Beginnen vanaf index = aantal elementen en aflopen tot aan 0.

https://fgheysels.github.io/


Verwijderd

Topicstarter
THANKS het is gelukt
Pagina: 1