So mal wieder eine kleine Frage:
Habe ein typisiertes Dataset an ein Datagridview gebunden. In der Datenbank ist als DefaultValue 0 gesetzt.
Läuft soweit alles...NUR: wenn ich in eine Zeile gehe und die 0 lösche und die Zeile verlasse fliegt er mir um die Ohren, weil jetzt DBNull drin steht
Hab schon ein paar Sachen versucht und meine aktuelle, nicht zufrieden stellende, Lösung ist diese:
Damit verhindert er zumindest das verlassen der Zelle. Mir wäre aber viel lieber er würde einfach 0 reinschreiben und fertig...aber wie?
P.S. es geht um insgesamt 52 Spalten und diese haben den HeaderText 1 bis 52
Habe ein typisiertes Dataset an ein Datagridview gebunden. In der Datenbank ist als DefaultValue 0 gesetzt.
Läuft soweit alles...NUR: wenn ich in eine Zeile gehe und die 0 lösche und die Zeile verlasse fliegt er mir um die Ohren, weil jetzt DBNull drin steht
Hab schon ein paar Sachen versucht und meine aktuelle, nicht zufrieden stellende, Lösung ist diese:
VB.NET-Quellcode
- Private Sub dgvFertilizer_CellValidating(sender As Object, e As DataGridViewCellValidatingEventArgs) Handles dgvFertilizer.CellValidating
- Dim headerText As String = dgvFertilizer.Columns(e.ColumnIndex).HeaderText
- Dim NumberColumn As Integer = dgvFertilizer.Columns.Count - 1
- For i = 1 To NumberColumn - 9
- If headerText.Equals(i.ToString) And (String.IsNullOrEmpty(e.FormattedValue.ToString())) Then
- e.Cancel = True
- End If
- Next
- End Sub
Damit verhindert er zumindest das verlassen der Zelle. Mir wäre aber viel lieber er würde einfach 0 reinschreiben und fertig...aber wie?
P.S. es geht um insgesamt 52 Spalten und diese haben den HeaderText 1 bis 52