Ich bin ein wenig festgefahren, auch wenn ich Fragen über Null und Datenbanken gelesen habe. Ich versuche herauszufinden, wie ich NULL an die Datenbank C# senden kann. Verfahren singature istNULL-Wert in TSQL-Datenbank einfügen
MyMethod(string category, int? calories, int vegetarianFriendlyMeal);
, wenn sie mit nicht null genannt int es in Ordnung ist, aber wenn ich pass null es sagt.
Die SqlCommand.Prepare-Methode erfordert, dass alle Parameter einen explizit festgelegten Typ aufweisen.
Würdest du mir bitte sagen, wie man das Übergeben einer Null an die Datenbank zulässt und den folgenden Code explizit eingibt? Vielen Dank.
command.Parameters.Add("@cat", SqlDbType.VarChar, 2).Value = category;
command.Parameters.Add("@veg", SqlDbType.Int).Value = vegetarianFriendlyMeal;
if (calories == null)
{
command.Parameters.AddWithValue("@calories", DBNull.Value);
}
else
{
command.Parameters.Add("@calories", SqlDbType.Int).Value = calories;
}
Ich habe auch versucht,
SqlParameter cal = new SqlParameter("@calories", calories == null ? (object)DBNull.Value : calories);
command.Parameters.Add(cal);
mit dem gleichen Ergebnis.
Mit '.Value = Kalorien ?? (Objekt) DBNull.Value; 'sollte gut funktionieren. Der einzige Unterschied ist der Wert. Warum erstellen Sie den Parameter auf zwei verschiedene Arten? – Luaan
Sind Sie sicher, dass dies der gesamte Code ist? Ich sehe auf den ersten Blick keine Probleme. Gibt es andere Parameter in der Abfrage? – Andrey
@Luaan Danke, das funktioniert auch und speichert die if-Anweisung. – Bendom