Toon posts:

[VB.NET] Error met uitlezen uit Access database

Pagina: 1
Acties:
  • 44 views sinds 30-01-2008

Verwijderd

Topicstarter
Hey daar, me 2e topic al vandaag hehe :)

Ik heb even rondgezocht hier en kwam een fijne code tegen voor het uitlezen van een acces database, en ze op te slaan in variabelen. Echter heb ik dezelfde error als de originele auteur van de code, en met de oplossing die in de topic werd gegeven werkt het ook nog niet, of ik gebruik het verkeerd.

De code die ik had gevonde:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        Dim Naam As String
        Dim Achternaam As String

        Dim dbRead As OleDbDataReader
        Dim sConnectionString As String
        Dim PathInfo As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=LeerlingenDatabase.mdb"
        Dim con As OleDbConnection = New OleDbConnection(PathInfo)
        Dim Command As String = "Select * from AANMELDINGEN where amd_naam = Rik"
        Dim da As OleDbCommand = New OleDbCommand(Command, con)


        con.Open()
        While dbRead.Read()
            Naam = dbRead("amd_naam")
            Achternaam = dbRead("amd_achternaam")
        End While
        MsgBox(Naam)
        MsgBox(Achternaam)
        dbRead.Close()
        con.Close()



De fout waarschijnlijk in de Dim dbread, net zo als bij die andere jongen. de fout luid:

code:
1
System.NullReferenceException: Object reference not set to an instance of an object
en wijst dan naar de dbread in de lijn:
code:
1
        While dbRead.Read()


De oplossing die werd gegeven:
Kijk ook eens goed naar welke regel het fout gaat. Daar zal je vanzelf zien dat het gewoon een debugfoutje is.


Dim blaat as myObject


Geeft deze fout


Dim blaat as myObject = new myObject()

niet.
Ik heb dus dit gedaan:
code:
1
        Dim dbRead As OleDbDataReader


verranderd in:

code:
1
        Dim dbRead As OleDbDataReader = New OleDbDataReader


(met en zonder () erachter)
Maar ik krijg dan dit:
code:
1
C:\Documents and Settings\Administrator\Bureaublad\Leerling control\Intake.vb(73): 'System.Data.OleDb.OleDbDataReader.Private Sub New(connection As System.Data.OleDb.OleDbConnection, command As System.Data.OleDb.OleDbCommand, depth As Integer, chapter As System.IntPtr)' is not accessible in this context because it is 'Private'.


Iemand enig idee hoe ik het moet fixen? Als ik namelijk google en hier zoek naar code die ook de OleDbDataReader gebruikt, dan word hij namelijk gewoon gebruikt zonder de = New oledbdatareader erachter... Dus ik ben een beetje lost.

Ik hoop dat iemand mij kan helpen, alvast bedankt!

-Rik

  • whoami
  • Registratie: December 2000
  • Laatst online: 17:15
Als je eens een tutorial bekijkt ivm ADO.NET en hoe er gewerkt moet worden met DataReaders, zal je zien dat je een Reader moet creeëren vanuit je command.
Je OleDbCommand heeft nl. een method 'ExecuteReader'.

code:
1
2
3
4
5
6
OleDbReader myReader = myCommand.ExecuteReader();

while( myReader.Read() )
{
   Console.WriteLine (myReader[0].ToString());
}


Eigenlijk kon je zelf, dmv een beetje logisch na te denken, die fout ook wel oplossen, want een null-ref exception wil zeggen dat je een object wilt uitlezen (of wilt schrijven naar...) dat niet gealloceerd is.

Aangezien dit eigenlijk een simpel debug-vraagje is, die je zelf ook had kunnen oplossen door eens in goed in een tutorial / MSDN / boek te kijken, had kunnen oplossen, doe ik dit topic maar dicht. :)

Tipje: ipv direct met databases enzo te werken, is het misschien handiger als je bij het begin begint. :)

[ Voor 7% gewijzigd door whoami op 25-05-2005 21:35 ]

https://fgheysels.github.io/


Dit topic is gesloten.