SqlParameter mit Nullable-Wert gibt Fehler während ExecuteNonQuery?

Ich habe eine sql-Abfrage, die einen parameter hat, kann null in der Datenbank (Sql Server). Die update-Methode funktionieren, bis der Benutzer eine leere im Feld, diese erzeugen einen null-Wert für die DataTime-Objekt (dieses Objekt auf null gesetzt werden). Das problem ist, wenn die dbCommand.ExecuteNonQuery();.

Hier ist, wie Baue ich die parameter für dieses Feld:

    IDataParameter dbParam_au_id = new SqlParameter();
    dbParam_au_id.ParameterName = "@birthday";
    dbParam_au_id.Value = birthday;
    dbParam_au_id.DbType = DbType.DateTime;
    dbCommand.Parameters.Add(dbParam_au_id);

Ich habe versuchen zu konvertieren, wird der null-Wert von Geburtstag zu DBNull.Wert wie das :

    IDataParameter dbParam_au_id = new SqlParameter();
    dbParam_au_id.ParameterName = "@birthday";
    dbParam_au_id.Value = birthday??DBNull.Value;
    dbParam_au_id.DbType = DbType.DateTime;
    dbCommand.Parameters.Add(dbParam_au_id);

Aber dieser code wird nicht kompiliert und ich bekomme Fehler :

Fehler 1 Der Operator"??' angewendet werden kann nicht auf Operanden vom Typ " System.DateTime?' und 'System.DBNull'

Irgendeine Idee?

Kommentar zu dem Problem
Auf einer seitlichen Anmerkung, ich stark empfehlen, dass Sie nicht die DbType Eigentum, es sei denn, Sie verwenden es als output-parameter. Ich habe nie gesehen, unzählige subtile bugs verursacht und nicht ein einziger gelöst, indem Sie es. Kommentarautor: Jonathan Allen

InformationsquelleAutor der Frage Patrick Desjardins | 2009-05-14

Schreibe einen Kommentar