SqlParameter in C# einen Nullwert zuweisen
Im bereitgestellten Code ist ein Fehler aufgetreten: „Kann nicht implizit von DBNull in int konvertiert werden.“ Dieser Fehler entsteht durch einen bedingten Operator, der versucht, der Value-Eigenschaft eines SqlParameters einen int-Wert oder einen Wert vom Typ DBNull zuzuweisen. Leider sind diese Datentypen inkompatibel und der Operator kann den geeigneten Rückgabetyp nicht ermitteln.
Die Problemumgehung besteht darin, den AgeItem.AgeIndex-Wert in den Typ „Objekt“ umzuwandeln oder den Null-Koaleszenzoperator (??) zu verwenden. Durch die Umwandlung von AgeItem.AgeIndex in den Typ „object“ wird sichergestellt, dass es der Value-Eigenschaft zugewiesen werden kann (die Value-Eigenschaft erfordert ein Objekt). Alternativ kann ein saubererer Ansatz mit dem ??-Operator erreicht werden:
<code class="language-csharp">SqlParameter[] parameters = new SqlParameter[1]; SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int); planIndexParameter.Value = (object)AgeItem.AgeIndex ?? DBNull.Value; parameters[0] = planIndexParameter;</code>
In diesem Fall wertet ?? AgeItem.AgeIndex aus und weist, wenn es null ist, den Wert des Parameters DBNull.Value zu. Mithilfe der Typkonvertierung oder des Nullkoaleszenzoperators können wir den oben genannten Fehler beheben und der Value-Eigenschaft des SqlParameters den erforderlichen Wert zuweisen.
Das obige ist der detaillierte Inhalt vonWie werden Nullwerte beim Zuweisen zu einem SqlParameter in C# behandelt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!