Hallo,
ich habe da mal folgendes Problem:
Wie kann ich Daten aus einer Datenbank in eine ComboBox füllen. Muss ich da eine Schleife mit einbinden. Ich weiß das das geht, aber ich weiß nicht wie..
bitte helfen :-)...danke
Hallo,
ich habe da mal folgendes Problem:
Wie kann ich Daten aus einer Datenbank in eine ComboBox füllen. Muss ich da eine Schleife mit einbinden. Ich weiß das das geht, aber ich weiß nicht wie..
bitte helfen :-)...danke
Hallo DarkPrayer!!
im Gegensatz zum (alten) VB6 werden in VB.NET alle Combobox Items als Objekte gespeichert.
Alle Objekte sind in einer Item Collection gespeichert. Objekte werden nach dem Schema
Collection.Items.Add(ObjektName) mittels einer Schleife gespeichert.
Es empfiehlt sich daher erstmal eine Objektklasse anzulegen, die für die ComboBox benutzt wird; z.B.
================================================
Public Class CListItem
Dim intID As Integer
Dim strValue As String
Public Property Item_Identifier() As Integer
Get
Item_Identifier = intID
End Get
Set(ByVal Value As Integer)
intID = Value
End Set
End Property
Public Property Item_Value() as String
Get
Item_Value = strValue
End Get
Set(ByVal Value as String)
strValue = Value
End Set
End Property
Public Overrides Function ToString() As String
ToString = strValue
End Function
End Class
===================================================
Die Methode "ToString" wird von der Superklasse Objekt geerbt und muss daher neu definiert werden.(=Inheritance) Die ComboBox ruft die Methode ToString auf um sich den Wert zu holen der in der ComboBox angezeigt wird. Die Beispielobjektklasse oben hat zwei Eigenschaften. Einmal kannst Du dort einen Identifier (Primärschlüssel) einer Tabelle speichern und auch noch einen Textwert. Natürlich kannst Du weitere Eigenschaften (Properties) hinzufügen :-)
Aus der Datenbank werden die Werte also folgendermassen hinzugefügt. Angenommen Du benutzt einen OLEDB DataReader und hast eine Combobox Namens "Combobox1":
Dim cItem as CListItem
do while oReader.Read()
cItem = new CListItem()
cIItem.Item_Identifier = oReader.Item("Tabellenschlüsselname");
cItem.Item_Value = oReader.Item("Tabellenattributname");
ComboBox1.Items.Add(cItem)
Loop
Das war's dann auch schon. Ich hoffe Du hast das Prinzip verstanden.
Hallo Phillips,
ja das Prinzip habe ich verstanden, echt gut...aber ich habe da immer noch einen Fehler wenn ich versuche die Anwendung zu debuggen:
Eine nicht behandelte Ausnahme des Typs 'System.NullReferenceException' ist in WindowsApplication1.exe aufgetreten.
Zusätzliche Informationen: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Der Code lautet bei mir:
=======================================================================================
'Eingabe in Combobox
Const CONNSTR = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=F:\Entwicklung\NET\speilplatz\bin\spiel.mdb;"
Const SQLSTR = "SELECT ID,gerät_ansprech_anrede FROM spielgeräte"
Dim conn As New OleDbConnection(CONNSTR)
Dim cmd As New OleDbCommand(SQLSTR, conn)
Dim dr As OleDbDataReader
Dim cItem As CListItem
Do While dr.Read()
cItem = New CListItem
cItem.Item_Identifier = dr.Item("ID")
cItem.Item_Value = dr.Item("gerät_ansprech_anrede")
editID_anrede.Items.Add(cItem)
Loop
================================================================================
Ende