Announcement

Collapse
No announcement yet.

gebundenes DatagridView: TimespanSpalte als dbNull.value speichern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • gebundenes DatagridView: TimespanSpalte als dbNull.value speichern

    Hallo,

    mein Problem besteht darin, in einem gebundenen Dataset, ein Timespanwert zu speichern/löschen.
    Die Spalte erlaubt Nullwerte.
    Ich kann z.b. eine Zeile anlegen, in der kein Wert gespeichert wurde (es wird auch dbNull ausgegeben als Wert).
    Sobald ich einen Wert darin speicher und diesen (zum Test) wieder auf DBNull.value setze, meldet sich das DataError-Ereigniss zu Wort, mit der Begründung:

    "Die Eingabezeichenfolge hat das falsche Format
    bei System.Timespan.stringparser.parse(string s)
    ..."

    selber Fehler tritt z.b. auch bei gebundenen Spalten mit dem Datentypen Int16 / int32 /.. auf, bei Strings übernimmt er das dbNull.value

    [highlight=vbnet]
    Sub test(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.DataGridViewCellValidatingEve ntArgs) Handles dgvtest.CellValidating
    If sender.CurrentCell.EditedFormattedValue.ToString = "" Then
    sender.CurrentCell.Value = DBNull.Value
    End If
    End Sub[/highlight]

    Hat vielleicht jemand einen Fingerzeig, wie sich das Problem lösen könnte (Ausser alle Werte als String zu speichern )

    Vielen Dank schonmal im Voraus
    Chris

    -----------------------------------
    Nachtrag:
    Es scheint nur während des "Validating"-Event nicht zu funktionierend, irgendwie springt er standardmässig ins DataError-Event, egal welchen Wert ich im beim "Validating" zuweise.

    Wenn ich den Zellwert per Cmd-Schaltfläche zuweise, nimmt er das dbNull.Value an.
    Ich werde mal weiter probieren, Tipps nehme ich aber trotzdem gerne an.



    Gelöst:
    --------------------
    mittlerweile hab ich es gelöst bekommen, falls wer auf diesen thread stösst und das selbe problem hat:

    ich hab ein neues projekt erstellt (mit einer test-tabelle), dort konnte ich alle werte ohne probleme löschen, kein dataerror-event...

    ich vermute, das irgendwo im code noch eine alte einstellung versteckt war, die nullwerte ablehnte. im dataset sowie in der db waren sie erlaubt. allerdings waren sie noch untersagt, als ich das ursprüngliche projekt erstellte. ich hab es erst nachträglich zugelassen, wahrscheinlich blieb da was im designercode über, was nicht aktualisiert wurde, daher wurden nullwerte weiterablehnte...

    war schon am verzweifeln...
    konnte mir auch nicht vorstellen, das sowas bei timespan nicht gehen sollte...
    Zuletzt editiert von TuckerCase; 16.05.2011, 14:55.
Working...
X