Füllen Sie die Combobox aus der Datenbank

8

Ich habe einen Fehler mit einer Combobox

Mein Code:

%Vor%

Die Daten werden in der Combobox angezeigt, aber wenn Sie den Auswahlwert ändern, ändert sich das Anzeigeelement nicht.

Es funktioniert jetzt aber, wenn ich auf die Schaltfläche klicke, um die Daten anzuzeigen

%Vor%

Dies wird angezeigt:

FleetName
FleetID

Es zeigt den Wert nicht an

    
Ahmed Sharkawy 19.09.2012, 12:24
quelle

6 Antworten

12

Sie müssen Ihren Code komplett neu schreiben. DisplayMember und ValueMember zeigt auf columnNames! Außerdem sollten Sie wirklich ein using block verwenden - damit die Verbindung nach der Ausführung der Abfrage entsorgt (und geschlossen ) wird.

Anstatt einen dataReader zu verwenden, um auf die Werte zuzugreifen, wählte ich eine dataTable und band sie als dataSource auf die ComboBox.

%Vor%

Die Verwendung einer dataTable ist möglicherweise etwas etwas langsamer als ein dataReader , aber ich muss keine eigene Klasse . Wenn Sie wirklich einen DataReader verwenden möchten / möchten, können Sie @Natrass-Ansatz wählen. In jedem Fall sollten Sie einen Block verwenden !

BEARBEITEN

Wenn Sie den aktuellen Wert der Combobox erhalten möchten, versuchen Sie dies

%Vor%     
Pilgerstorfer Franz 19.09.2012, 12:51
quelle
7

Um das Combobox in der von Ihnen beabsichtigten Weise zu verwenden, könnten Sie ein Objekt an die Methode cmbTripName.Items.Add übergeben.

Dieses Objekt sollte FleetID und FleetName Eigenschaften haben:

%Vor%

Die Klasse Fleet :

%Vor%

Oder Sie könnten wahrscheinlich die Notwendigkeit einer Fleet -Klasse vollständig beseitigen, indem Sie einen anonymen Typ verwenden ...

%Vor%     
Nattrass 19.09.2012 12:39
quelle
1

Außerhalb der Schleife legen Sie Folgendes fest.

%Vor%     
Prasanna 19.09.2012 12:31
quelle
0
%Vor%     
user4481744 22.01.2015 08:56
quelle
0
%Vor%     
Md.Rajibuzzaman 20.04.2014 09:39
quelle
0
%Vor%     
Inaldi Gomez 22.11.2017 16:07
quelle

Tags und Links