Gebundene ComboBox soll auch DBNull ermöglichen

11/02/2008 - 16:30 von Dirk Wölfel | Report spam
Hallo zusammen,

ich nutze in einem Formular ein DataGridView. Eine der Spalten des
DataGridView ist eine Combobox. Über die Eigenschaften DataSource,
DisplayMember und ValueMember werden aber die Werte einer anderen
Tabelle dargestellt und stehen zur Auswahl bereit.

An sich funktioniert jetzt auch alles: am Anfang ist die Spalte in der
Ursprungstabelle leer (DBNull), man kann jetzt einen Wert in der
ComboBox auswàhlen (Werte kommen aus der 2. Tabelle) und in der
Ursprungstabelle wird alles richtig gespeichert.

Was leider nicht funktioniert: man kann den Wert nicht zurück auf
DBNull setzten, da dieser Wert in der 2. Tabelle nicht vorkommt und
die ComboBox dies somit auch nicht zu Auswahl zulàßt.

Wie kann man eine solche Funktion trotzdem realisieren?

Vielen Dank,

Dirk
 

Lesen sie die antworten

#1 Gerald
12/02/2008 - 08:33 | Warnen spam
Hallo Dirk

Ich verwende zu diesem Zweck 2 Klassen
"ComboBoxItem" und "ComboBoxList"
Beim anlegen der MYList erstelle ich zuerst einen Listeneintrag mit
MYList.Add(New ComboboxItem(System.Convert.DBNull, "KEINEAUSWAHL"))
und dann füge ich die Werte aus der Tabelle hinzu.
Diese "MYList" binde ich dann an die Combobox

Gruß Gerald

<Serializable()> _
<System.ComponentModel.DataObject()> _
Public Class ComboboxItem
Public Sub New()
End Sub
Public Sub New(ByVal ValueMember As Object, ByVal DisplayMember As String)
locValueMember = ValueMember
locDisplayMember = DisplayMember
End Sub
Dim locValueMember As Object
Public ReadOnly Property ValueMember() As Object
Get
Return locValueMember
End Get
End Property
Dim locDisplayMember As String
Public ReadOnly Property DisplayMember() As String
Get
Return locDisplayMember
End Get
End Property
End Class

Imports System.ComponentModel
<Serializable()> _
<System.ComponentModel.DataObject()> _
Public Class ComboBoxList
Inherits List(Of ComboboxItem)
Sub New()
End Sub
End Class


"Dirk Wölfel" wrote:

Hallo zusammen,

ich nutze in einem Formular ein DataGridView. Eine der Spalten des
DataGridView ist eine Combobox. Über die Eigenschaften DataSource,
DisplayMember und ValueMember werden aber die Werte einer anderen
Tabelle dargestellt und stehen zur Auswahl bereit.

An sich funktioniert jetzt auch alles: am Anfang ist die Spalte in der
Ursprungstabelle leer (DBNull), man kann jetzt einen Wert in der
ComboBox auswàhlen (Werte kommen aus der 2. Tabelle) und in der
Ursprungstabelle wird alles richtig gespeichert.

Was leider nicht funktioniert: man kann den Wert nicht zurück auf
DBNull setzten, da dieser Wert in der 2. Tabelle nicht vorkommt und
die ComboBox dies somit auch nicht zu Auswahl zulàßt.

Wie kann man eine solche Funktion trotzdem realisieren?

Vielen Dank,

Dirk

Ähnliche fragen