Kann mir jemand sagen, wo im untenstehenden Code der Fehler liegt?
Beim Aufruf von ExecuteReader erhalte ich die Fehlermeldung:„An unhandled exception of type ‚System.NullReferenceException‘ occurred in system.data.dll Additional information: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.“
Dim Conn As OleDbConnection = New OleDbConnection(CONNSTRING)
Dim Com As OleDbCommand = New OleDbCommand
Dim DR As OleDbDataReader = Nothing
Conn.Open()
Com.Connection = Conn
Com.CommandText = „SELECT * FROM Contact“
DR = Com.ExecuteReader
DR.Close()
Conn.Close()
Hallo,
Kann mir jemand sagen, wo im untenstehenden Code der Fehler
liegt?
Beim Aufruf von ExecuteReader erhalte ich die
Fehlermeldung:„An unhandled exception of type
‚System.NullReferenceException‘ occurred in system.data.dll
Additional information: Der Objektverweis wurde nicht auf eine
Objektinstanz festgelegt.“
Normalerweise kannst Du die Zeile ermitteln, in der der Fehler auftritt. Anhand des Codebeispieles kann ich mir nur vorstellen, dass
Com.ExecuteReader
als Ergebnis
Nothing
liefert, und das Programm sich dann bei
DR.Close()
verabschiedet.
Dim Conn As OleDbConnection = New OleDbConnection(CONNSTRING)
Dim Com As OleDbCommand = New OleDbCommand
Dim DR As OleDbDataReader = Nothing
Conn.Open()
Com.Connection = Conn
Com.CommandText = „SELECT * FROM Contact“
DR = Com.ExecuteReader
DR.Close()
Conn.Close()
Der beschriebene Fehler tritt in der Zeile:„DR = Com.ExecuteReader“ auf.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi,
dann fällt mir dazu nur noch ein, dass es die Tabelle Contact nicht geben könnte, ev. Contacts stattdessen?
lg
M.
Leider ist es nicht so einfach. Der Query ist Korrekt. Ich habe ihn an Access getestet.
Funktioniert den der Code-Schnipsel bei Dir?
Hy!
VB ist nicht meine spezialität, aber ich würde mal versuchen, DR nicht mit nothing (ich nehm mal an das is null,nil) zu initialisieren.
sondern mit „DR = new dataReader“ oda was auch immer…
wenn du DR = nothing machst, und danach eine methode von DR verwenden willst (DR.ExecuteReader()) dann versuchst du eine methode von einem NULL object zu verwenden.
Falls das nicht hilft, versuch das ganze mal in einen try catch block zu setzen zwecks information…
Greets Tom
Hy!
Hab dummerweise meine antwort auf den ursprungspost gepostet, also nachsehn 
Ausserdem meinte ich natürlich DR = cmd.ExecuteReader() nicht DR.ExecuteReader(). Aber auch hier… an dieser stelle im code ist DR nothing… ich denke daran könnte es liegen
Greets Tom
Antwort gefunden! Der Code ist richtig. Er verlangt jedoch zwingend die MDAC 2.6. Mit der MDAC 2.8 funktioniert dies scheinbar nicht.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Antwort gefunden! Der Code ist richtig. Er verlangt jedoch
zwingend die MDAC 2.6. Mit der MDAC 2.8 funktioniert dies
scheinbar nicht.
Ach Du Schande! Wenn das so ist, dann hat sich M$ mal wieder einen ziemlichen Hammer geleistet. Code wie Deiner ist nun wirklich elementar und wird vermutlich haufenweise so verwendet. Und wenn das nicht klappt…
Danke für’s Rausfinden jedenfalls! *chen dafür. Dass die neuesten MDAC der Grund sind hätte ich echt nicht erwartet. Aber jetzt weiss man, woran’s noch liegen kann.
Wie sieht denn nun Dein Workaround aus? Immer MDAC 2.6 installieren oder nicht mit ExecuteReader arbeiten? Funktioniert denn ein Execute überhaupt oder kracht’s da auch?
Martin
Kann mir jemand sagen, wo im untenstehenden Code der Fehler
liegt?
Beim Aufruf von ExecuteReader erhalte ich die
Fehlermeldung:„An unhandled exception of type
‚System.NullReferenceException‘ occurred in system.data.dll
Additional information: Der Objektverweis wurde nicht auf eine
Objektinstanz festgelegt.“
Dim Conn As OleDbConnection = New OleDbConnection(CONNSTRING)
Dim Com As OleDbCommand = New OleDbCommand
Dim DR As OleDbDataReader = Nothing
Conn.Open()
Com.Connection = Conn
Com.CommandText = „SELECT * FROM Contact“
DR = Com.ExecuteReader
DR.Close()
Conn.Close()
Funktioniert den der Code-Schnipsel bei Dir?
Ja, gegebenenfalls die Tabelle existiert. Wenn die Tabelle nicht existiert tritt der beschriebene Fehler auf.
Antwort gefunden! Der Code ist richtig. Er verlangt jedoch
zwingend die MDAC 2.6. Mit der MDAC 2.8 funktioniert dies
scheinbar nicht.
Ach Du Schande! Wenn das so ist, dann hat sich M$ mal wieder
einen ziemlichen Hammer geleistet. Code wie Deiner ist nun
wirklich elementar und wird vermutlich haufenweise so
verwendet. Und wenn das nicht klappt…
Danke für’s Rausfinden jedenfalls! *chen dafür. Dass die
neuesten MDAC der Grund sind hätte ich echt nicht erwartet.
Aber jetzt weiss man, woran’s noch liegen kann.
Wie sieht denn nun Dein Workaround aus? Immer MDAC 2.6
installieren oder nicht mit ExecuteReader arbeiten?
Funktioniert denn ein Execute überhaupt oder kracht’s da auch?
Dann liegt es vermutlich am Connection String. Wie sieht der denn aus?