Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Daten aus einer Datenbank in eine Combo Box füllen /VB.NET

DarkPrayer / 2 Antworten / Baumansicht Nickles

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


 

bei Antwort benachrichtigen
philipps DarkPrayer „Daten aus einer Datenbank in eine Combo Box füllen /VB.NET“
Optionen

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.

bei Antwort benachrichtigen
DarkPrayer Nachtrag zu: „Daten aus einer Datenbank in eine Combo Box füllen /VB.NET“
Optionen

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

bei Antwort benachrichtigen