ExecuteScalar
gibt null zurück, wenn die Ergebnismenge laut MSDN null ist. Das bedeutet, dass deine Besetzung ungültig ist
Siehe hier für die Dokumentation SqlCommand.ExecuteScalar
Wenn Sie möchten, dass dieser Cast funktioniert, ändern Sie ihn in ein Nullable int
Ich habe gerade ein ähnliches Problem erlebt. Was ich getan habe, war eine int-Spalte aus einem bestimmten Datensatz in einer Tabelle auszuwählen, aber der Wert dieser Spalte ist 0. Der folgende Vorgang verursachte die Ausnahme "Objektverweis nicht auf eine Instanz eines Objekts gesetzt":
%Vor%Meine Lösung war, den obigen Code zu ändern:
%Vor%Dies hat die Ausnahme vermieden.
Sie tun es ziemlich falsch - versuchen Sie, SqlDataReader
für validateDatabase.ExecuteScalar()
results