gibt nicht ganz klar, was Sie meinen. Wenn Sie versuchen, einen Nullwert in einem SQL-Parameter zu übergeben, sollten Sie DBNull.Value
als Wert für Ihre SqlParameter
(oder den von Ihnen verwendeten Typ) verwenden. Wenn Sie eine nullbare ganze Zahl in C# darstellen möchten, verwenden Sie int?
(oder Nullable<int>
- sie sind das Gleiche).
Sie können keinen Nullwert in einer normalen, nicht nullbaren Werttypvariablen speichern. Nullable-Werttypen sind immer noch Strukturen, aber sie umbrechen den Nicht-Nullable-Typ und fügen einen booleschen Wert hinzu, um anzugeben, ob es sich um einen "echten" Wert oder Null handelt. C# fügt syntaktischen Zucker um ihn herum, so dass Sie die null
wörtlichen für Zuweisungen verwenden, verschiedene Umwandlungen, hoben Betreiber etc:
int? value = 5;
value = null;
if (value == null)
{
...
}
Wenn das nicht hilft, bitte geben Sie uns weitere Informationen über genau das, was Sie versuchen, machen.
EDIT: Okay, so dass es wie StockBO.Client_id
sieht short?
vom Typ sein sollte - aber dann, dass nicht zulassen DBNull.Value
direkt eingestellt werden. Sie sollten null
verwenden, um die Client-ID auf den Nullwert festzulegen. Wenn Sie zwischen Objekten und SQL-Parametern und -Ergebnissen übersetzen, müssen Sie diese Art der Konvertierung selbst durchführen. Wenn Sie dies regelmäßig tun, erarbeiten Sie einige Hilfsmethoden, um es Ihnen leichter zu machen.
Natürlich, wenn Sie anfangen, LINQ to SQL oder etwas ähnliches zu verwenden, müssen Sie sich keine Gedanken über DBNull.Value
machen - LINQ-Anbieter neigen dazu, Nullable-Werttypen direkt zu unterstützen.
Ich bin sehr stolz, Post zu sehen ..Danke ma ich habe meine Frage aktualisiert bitte überprüfen Sie es – TinTin
@Ayyappan: Ich habe meine Antwort bearbeitet. –
Vielen Dank Mr Jon Skeet – TinTin