Welchen Datentyp gibt die SQLCommand-Methode ExecuteScalar () zurück?

In SQL Server ist ID eine Ganzzahl ungleich Null und eine Identität.

Wenn ich den folgenden Code ausführe, wird in der letzten Zeile eine InvalidCastException angezeigt:

SqlCommand cmd = new SqlCommand();
cmd.Connection = _conn;
cmd.CommandText = @"INSERT INTO [Users] (Name, Email, Password) VALUES (@name, @email, @pass); SELECT SCOPE_IDENTITY()";
cmd.Parameters.AddWithValue("@name", newUser.Name);
cmd.Parameters.AddWithValue("@email", newUser.Email);
cmd.Parameters.AddWithValue("@pass", newUser.PasswordHash);
int id = (int)cmd.ExecuteScalar();

Was kommt ExecuteScalar () hierher zurück? Was auch immer es zurückgibt, es hat einen ToString (), der es wie eine Zahl aussehen lässt, also funktioniert diese schreckliche Codezeile:

int id = Int32.Parse(cmd.ExecuteScalar().ToString());

Antworten auf die Frage(6)

Ihre Antwort auf die Frage