Archief - Probleem in vb.net

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Tomster

Legacy Member
Hopelijk staat da hier een beetje juist, ma ik wist nie echt waar ik het anders moest zetten, en ik wou het op dit forum toch ook es vragen.
Ik ben dus aan het proberen van gegevens op te vragen uit een access databank. Maar ik krijg altijd een fout in deze regel: dsdataset.Tables(0).Rows(rijnr).Item("naam") = lblnaam.Text
En hij duidt de fout aan op die 0. Ik heb die regel overgenomen uit een ander programmake van mij maar ik weet dus echt niemeer waarvoor die 0 staat en dan is het nogal moeilijk om die fout op te lossen, weet er iemand dus mss wat de functie van die 0 is?
Alvast bedankt
Greetz
Tomster

Wover

Legacy Member
dsdataset is wss uw database e?

wel eigenschap tables zal wel zijn om de tabel waarin hij gaat zoeken om de gegevens uit te halen he... het kan zijn dat hij tabellen begint te nummeren vanaf 0 maar probeer toch ns 1...

[IpL]Viper_666

Legacy Member
Aangezien een dataset een replicaat van een database is,
kan deze verschillende Tables bevatten. Die kan je benaderen
door ofwel de naam te geven van de Table :
dataset.Tables("tabelnaam").Rows(rijnummer).Item("kolomnaam")

Maar je kan ook telkens in de plaats van de naam
ook de index opgeven van wat je wilt benaderen :
dataset.Tables(0).Rows(0).Item(0)

Als je 0 zet dan neemt hij het eerste element van de collection,
Zoals je in een gewone tabel index 0 zou krijgen (1e dat erin is)

Wover

Legacy Member
[IpL]Viper_666 zei:
Aangezien een dataset een replicaat van een database is,
kan deze verschillende Tables bevatten. Die kan je benaderen
door ofwel de naam te geven van de Table :
dataset.Tables("tabelnaam").Rows(rijnummer).Item("kolomnaam")

Maar je kan ook telkens in de plaats van de naam
ook de index opgeven van wat je wilt benaderen :
dataset.Tables(0).Rows(0).Item(0)

Als je 0 zet dan neemt hij het eerste element van de collection,
Zoals je in een gewone tabel index 0 zou krijgen (1e dat erin is)

da wiste we al, maar waarom krijgt dieje jongen dan een fout als m tabel met index 0 aanroept?

[IpL]Viper_666

Legacy Member
Welken error krijgde eigenlijk, in .net zijn die meestal nogal expliciet.
Als het ne 'null reference exeption' is dan edde simpelweg geen
tabellein in uwen dataset. Kunt idd is proberen met een 1 ipv 0
voor dienen index (ma kpeis dat niks ga geven) want kzen ook is
goe van mijne stoel gevallen toen dak zag in VB da ze met 1 begonnen
te indexeren (om het weer zogezegd makkelijker te maken zeker, yeah right)

Anders als ge wilt weten wat er exact in uwen dataset steekt kunde
toch gewoon dienen zijnen inhoud dumpen in xml vorm en in een textbox
of in uw console laten afprinten, dan wete de namen van uw tabellen ook.

Tomster

Legacy Member
De fout die ik krijg is:
An unhandled exception of type 'System.IndexOutOfRangeException' occurred in system.data.dll
Additional information: Cannot find table 0.
Ik had 1 al geprobeerd en dan stond er dezelfde fout alleen cannot find table 1.
En als ik er de naam van mij tabel zet: dan krijg ik deze fout:
An unhandled exception of type 'System.NullReferenceException' occurred in Test.exe
Additional information: Object reference not set to an instance of an object.

.bal

Legacy Member
Print uw tabel eens uit naar de console. Wat is het doel van je app?

Wover

Legacy Member
de belachelijke oplossing:

nieuw project, nieuw procedure, code gewoon kopiëren plakken, opnieuw proberen.


Ik heb nog nooit gewerkt met vb.net maar in vba in acces en excel enz werkt da dan meestal wel (heeft meestal iets te maken met hetgeen er achter de procedurenaam staat bv Public Sub test(cancel as integer) of als je constanten of variabelen hebt gedeclareerd bovenaan (waar ook option explicit en option base enz staan)

weet ni waarom, heb nog maar een jaartje vba achter de rug e ;)

Squall-sX-

Legacy Member
Heb je je dataset wel opgevuld? Bij een dataset is 0 de allereerste tabel, en
als die er niet is is je dataset leeg.
Laat anders de code zien waarmee je deze opvult.



edit:
niet de tabel maar je dataset is leeg, klein foutje.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan