ComboBox: Wert nicht mehr vorhanden

26/06/2009 - 12:59 von Martin von Seht | Report spam
Hallo,

habe folgendes Problem in einer Form habe ich eine ComboBox, die ich mit
folgendem Code fülle:
Dim HSQL As String = ""
Dim con As System.Data.SqlClient.SqlConnection = Nothing
Dim ds As New DataSet
Dim daCB As System.Data.SqlClient.SqlDataAdapter
con = getSqlConnection()
HSQL = "SELECT Bearbeiter, BearbeiterBez FROM auswahlBearbeiter
ORDER by Bearbeiterbez"
daCB = New System.Data.SqlClient.SqlDataAdapter(HSQL, con)
daCB.Fill(ds, "Auswahlbearbeiter")
Me.sBearbeiter.DataSource = ds
Me.sBearbeiter.DisplayMember = "Auswahlbearbeiter.BearbeiterBez"
Me.sBearbeiter.ValueMember = "Auswahlbearbeiter.Bearbeiter"

Wenn jetzt in einem Gespeichertem Datensatz meiner Tabelle "Aktivitàten" im
Feld "AktuellerBearbeiter" z.B. der Wert "User" steht, dieser Wert aber
zwischenzeitlich das der Tabelle "AuswahlBearbeiter" gelöscht wurde, wird im
Formular in der ComboBox kein Wert angezeigt.

Wie kann man das Problem am besten lösen?

Ich verwende VB2005 unter Windows XP.

Vielen Dank

Gruss

Martin von Seht
 

Lesen sie die antworten

#1 Elmar Boye
26/06/2009 - 15:05 | Warnen spam
Hallo Martin,

Martin von Seht schrieb:
habe folgendes Problem in einer Form habe ich eine ComboBox, die ich mit
folgendem Code fülle:
HSQL = "SELECT Bearbeiter, BearbeiterBez FROM auswahlBearbeiter
ORDER by Bearbeiterbez"

Wenn jetzt in einem Gespeichertem Datensatz meiner Tabelle "Aktivitàten"
im Feld "AktuellerBearbeiter" z.B. der Wert "User" steht, dieser Wert
aber zwischenzeitlich das der Tabelle "AuswahlBearbeiter" gelöscht
wurde, wird im Formular in der ComboBox kein Wert angezeigt.

Wie kann man das Problem am besten lösen?



Sinnvollerweise auf Seiten der Datenbank.
Entweder entfernst Du die nicht mehr existenten AuswahlBearbeiter
aus der Spalte oder Du legst sie erneut an, z. B. in dem Du
Bearbeiter aus der TAbelle nimmst und BearbeiterBez mit <GELÖSCHT>
belegst.

Zudem solltest Du darauf eine Fremdschlüsselbeziehung (FOREIGN KEY)
zwischen den Tabellen herstellen, so dass ein Löschen nicht mehr
möglich ist.

Gruß Elmar

Ähnliche fragen