Archief - [PROG][VB.NET] Vervelend probleem

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.

sarnath

Legacy Member
K heb eigenlijk een heel raar probleem voor, k vind het ook vreemd om het te komen vragen, aangezien ik al heel wa grote applicaties heb gemaakt en dit nooit eerder heb voorgehad, dus wrs is het iets heel stoms..

Maar het probleem is dus hetvolgende.
Ik definieer een datatable, ik vul deze in een sub en hij wordt niet herkend in een andere sub:

Code:
Imports System.IO

Public Class Form1
       Public dtgegevens As DataTable

	Public Sub lijst_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstacademiejaar.SelectedIndexChanged
		dtgegevens = getdata()
		messagebox.show(dtgegevens.rows.count) '= 15 dus er zit wel degelijk iets in
	End Sub

        Private Sub lijst2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstopleidingen.SelectedIndexChanged
		messagebox.show(dtgegevens.rows.count)
		'geeft fout : object reference not set to an instance of an object
        End Sub
End class

killgore

Legacy Member
ehm, en je bent heel zeker dat die eerste methode eerst wordt opgeroepen ook (datadeclaratie in 2 vrij gelijkwaardige methodes is nogal gevaarlijk).

en wordt er geen code tussenin uitgevoerd die het dataobject wijzigen?

sarnath

Legacy Member
de tweede lijst wordt opgevuld door in de eerste lijst een item aan te klikken, op basis hiervan wordt dan een datatable gevuld die aan de tweede lijst als datasource wordt toegekend.

Ik declareer dus mijn datatable op class niveau, vul het op door middel van change van eerste lijst en wil m opvragen in de tweede lijst.

Door middel van messageboxen kan ik zien dat hij wel degelijk eerst in de eerste sub gaat om de datatable op te vullen, in de tweede moet ik die dan toch gewoon kunnen aanspreken? daar declareer ik toch niets?

Voor de rest wordt de datatable op geen enkele plaats aangesproken.

Beguv

Legacy Member
kan je de functie getdata ook een keertje posten?
en wrm gebruik je geen dataset ipv datatable?

2RB=EAGLE=

Legacy Member
ge hebt uw dtgegevens wel gedeclareerd maar niet geinstancieerd. Maak daar dus van:

Public dtgegevens As New DataTable

en het werkt wel.

(Of ge moet dat doen in die GetData() wa mij niet logisch lijkt)

Grtz

Fiestaver

Legacy Member
zijt ge zeker dat ge niet ergens nen databind doet op dien datatable?
Want als ge dat doet, dan verliest ie zijn pointer. en het object -> nullreference

want ik denk dat u code niet volledig is. Wat ge daar toont

sarnath

Legacy Member
Nope als ik de count doorgeeft doet m het wel, deze print m correct af, maar de datatable nog steeds nullreference.
De datatable wordt enkel in de eerste lijst opgevuld.

killgore

Legacy Member
Volgens mij gebeurt dit.
Pagina laadt -> object = null
Je klikt, pagina laadt opnieuw -> object = null, maar wordt geset door die methode
Je klinkt nogmaals, pagina laadt weer opnieuw -> object wordt weer op null geset.

Je zal imho dit in een session (of hoe het ook weer noemt in ASP) moeten steken.

Beguv

Legacy Member
dit is toch vb.net en geen asp.net?

kan je de functie getdata is posten?

sarnath

Legacy Member
Tis VB.NET idd

Heb het probleem gevonden, de datatable werd blijkbaar in een andere sub opnieuw gedeclareerd waardoor er dus een conflict ontstond, domme fout in ieder geval ;-)

alvast bedankt voor de hulp

Beguv zei:
kan je de functie getdata ook een keertje posten?
en wrm gebruik je geen dataset ipv datatable?

dataset zou idd beter zijn, maar tis een bestaande applicatie waar ik vanalles aan moet aanpassen, mss dat dat ook nog allemaal omgezet wordt :)

Obliv`

Legacy Member
Linckxs zei:
Tis VB.NET idd
dataset zou idd beter zijn, maar tis een bestaande applicatie waar ik vanalles aan moet aanpassen, mss dat dat ook nog allemaal omgezet wordt :)

Waarom zou een dataset beter zijn, als je maar één datatable hebt?

sarnath

Legacy Member
Obliv` zei:
Waarom zou een dataset beter zijn, als je maar één datatable hebt?

der worden der een drietal gebruikt, maar volledig losstaand van elkaar, dus je hebt gelijk er is idd geen dataset nodig, had me vergist :)
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