C# und DataValidation

Hallo Zusammen,

Habe frisch mit C# 2008 Express angefangen und möchte bei einem TestDataset eine Validation einbauen:

public override void EndInit()
{
base.EndInit();
ColumnChanging += CodesColumnChangingEvent;
}

public void CodesColumnChangingEvent(object sender, System.Data.DataColumnChangeEventArgs e)
{
if (e.Column.ColumnName == CODTYPColumn.ColumnName)
{
//if ((string)e.ProposedValue == „“)
if ((string)e.ProposedValue == „HELLO“)
//if (IsDBNull(e.ProposedValue))
{
e.Row.SetColumnError(„CODTYP“, „Typ darf nicht leer sein“);
}
else
{
e.Row.SetColumnError(„CODTYP“, „“);
}
}
}

Diese Routine funktioniert, wenn ich in meinem Datagrid den Wert „HELLO“ eingebe, dann wird der Fehler prima gemeldet.
Was ich aber nicht schaffe, ist dieses String-Feld auf NULL zu
testen: der Fehler wird weder mit =="" gebracht, noch mit IsDBNull o.ä). (vgl. auskommentierte Zeilen.
Ich weiss, dass ich NULL-Werte in der DB abfangen kann, es geht mir hier nur um ein Beispiel.
Also Frage: Wie muss ich die If-Zeile formulieren, das bei NULL der Fehler gemeldet wird?
Hat ev. jemand einen gescheiten Link zur Hand, wo genau solche Details beschrieben sind? Ich finde irgendwie nix schlaues auf MSDN.

Vielen Dank für Eure Hilfe!
Gruss
t.rex

Hi t.rex,

Du mußt erstmal gucken was das überhaupt für ein Objekt ist was du da über die Args bekommst. Ist ja vom Type Object.

bool valid = true;
if(e.ProposedValue is DBNull)
{
valid = false;
}

Mh, vergiss es :smile:. Das sollte diese Funktion IsDBNull ja schon erledigen. Wahrscheinlich ist es einfach null. DBNull.Value ist nämlich was anderes als null

Wenn das nicht weiterhilft guck doch mal was für ein Type das ist der da ankommt.

e.PropserdValue.GetType()

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Rasta,

Vielen Dank für Deine Infos. Sorry, dass ich mich erst jetzt melde, scheinbar wird man hier bei neuen Messages nicht benachrichtigt.
In der Zwischenzeit habe ich mich weiter ins Thema eingelesen (nach intensiver Forschung im Netz) und mein Problem gelöst.

Gruss
t.rex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]