Fehlermeldung beim füllen eines Array

16/03/2009 - 09:28 von Andreas Ahrens | Report spam
Hi NG,

ich habe bei füllen eines Array mit Daten einer Datenbank folgende
Fehlermeldung:

Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

Code:

Imports System.Data.OleDb

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim daten As String()
Dim i As Integer, j As Integer
Const SQL As String = "SELECT * FROM Kunden"
Dim conn As New
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source­O-Test.mdb")
Dim cmd As New OleDbCommand(SQL, conn)
conn.Open()
Dim dr As OleDbDataReader = cmd.ExecuteReader()
i = 1

While dr.Read

'Der Objektverweis wurde nicht auf eine Objektinstanz
festgelegt.
daten(i) = dr("NName") 'Array soll mit Nachnamen gefüllt
werden
i = i + 1
End While
conn.Close()
For j = 1 To i
Console.Write(daten(i))
Next
End Sub
End Class

Wo liegt der Fehler?

Gruß
Andy
 

Lesen sie die antworten

#1 Armin Zingler
16/03/2009 - 14:02 | Warnen spam
Andreas Ahrens wrote:
Hi NG,

ich habe bei füllen eines Array mit Daten einer Datenbank folgende
Fehlermeldung:

Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.



Du erzeugst kein Array. Deswegen ist

Dim daten As String()



noch Nothing (also eine Null-Reference). Daher die NullReferenceException.
Ein Array erzeugst du mit der Redim-Anweisung oder durch Angabe der
Dimension bei der Deklaration.

Da du aber vermutlich eine zur Entwurfszeit Anzahl an Elementen hast, eignet
sich ein Array dafür schlecht, denn die Größe eines Arrays kann nicht
geàndert werden. Verwende deshalb besser eine List(Of) (ab VB 2005) oder
eine Arraylist. Je nach Einsatzzweck kann es auch eine DataTable/ein Dataset
sein.


Armin

Ähnliche fragen