Eine DropDownList soll dynamisch mit Inhalten aus einer Tabelle (B) gefüllt werden. Der ausgewählte Index soll als Schlüssel in Tabelle (A) eingefügt werden.
Dies realisiert man relativ einfach durch Datenbindung. Dabei wird der SelectedValue des DropDownfeldes mit der Spalte in Tabelle (A) verknüpft:

Als Datenquelle für die Liste im DropDownList wird eine entsprechende DataSource gewählt:

Und schon klappts – Naja fast.
Will man nämlich auch „keinen Wert“ auswählen hat man ein kleines Problem. Denn der Wert „nichts“ (oder NULL) ist in der Tabelle (B) nicht enthalten. Versucht man nun einen Datensatz anzuzeigen, der in Tabelle (A) im Fremdschlüsselfeld den Wert NULL enthält, bekommt man folgenden Fehler:

Da in Tabelle (B) der Wert NULL nicht vorhanden ist, weiß das Programm nicht, welchen Wert es in der DropDownList anzeigen soll (weil es nicht in der Elementliste vorhanden ist). Um dennoch NULL-Werte (also nix) auswählen zu können ist folgende simple Erweiterung des DropDownList erforderlich:
Die Eigenschaft „AppendDataBoundItems“ des DropDownList wird auf True gesetzt. Damit „mischt“ man die statisch eingegebenen Einträge mit denen, die aus der DataSource kommen.

Für den NULL-Wert fügt man nun unter ITEMS einen Leer-Wert hinzu – und fertig ist das Ganze.

Nun besteht die Liste im DropDownList aus den Werten aus der Datenbank und einem einzelnen leeren Wert, den wir manuell hinzugefügt haben.
UNIQUE CONSTRAINT = UNIQUE KEY INDEX
Falsche Fährte: Index Type ist nicht der Type des Index!