Heim >Backend-Entwicklung >C++ >Wie werden DBNull-Werte beim Zuweisen zu SQL-Parametern in C# behandelt?

Wie werden DBNull-Werte beim Zuweisen zu SQL-Parametern in C# behandelt?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-11 08:48:45967Durchsuche

How to Handle DBNull Values When Assigning to SQL Parameters in C#?

DBNull-Wert kann SqlParameter nicht zugewiesen werden

Beim Versuch, SqlParameter einen Nullwert zuzuweisen, meldet der folgende Code einen Fehler:

<code class="language-csharp">SqlParameter[] parameters = new SqlParameter[1];    
SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int);
planIndexParameter.Value = (AgeItem.AgeIndex == null) ? DBNull.Value : AgeItem.AgeIndex;
parameters[0] = planIndexParameter;</code>

Das Problem besteht darin, dass der Operator ?: den Rückgabetyp nicht bestimmen kann, da es sich möglicherweise um einen Wert vom Typ int oder einen Wert vom Typ DBNull handelt und beide nicht kompatibel sind.

Lösung:

Um dieses Problem zu lösen, können Sie die folgenden Methoden wählen:

  • Umwandlung: Wandelt die AgeIndex-Instanz in einen Objekttyp um, der die Anforderungen des ?:-Operators erfüllt:
<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>
  • Verwenden Sie den Null-Koaleszenzoperator: Verwenden Sie den Null-Koaleszenzoperator ??:
<code class="language-csharp">SqlParameter[] parameters = new SqlParameter[1];     
SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int);
planIndexParameter.Value = AgeItem.AgeIndex ?? DBNull.Value;
parameters[0] = planIndexParameter; </code>

Laut der MSDN-Dokumentation für den ?:-Operator müssen erster_Ausdruck und zweiter_Ausdruck vom gleichen Typ sein, sonst kann ein Typ implizit in den anderen konvertiert werden.

Das obige ist der detaillierte Inhalt vonWie werden DBNull-Werte beim Zuweisen zu SQL-Parametern in C# behandelt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn