In SQL Server ist ID eine Nicht-Null-Ganzzahl und eine Identität.Welchen Datentyp gibt die SQLCommand-Methode ExecuteScalar() zurück?
Wenn ich den folgenden Code ausführen, erhalte ich eine InvalidCastException in der letzten Zeile:
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 ist ExecuteScalar() Rückkehr hier? Was auch immer seine Rückkehr hat eine ToString(), die es wie eine Reihe aussehen läßt, so dass diese schreckliche Codezeile funktioniert:
int id = Int32.Parse(cmd.ExecuteScalar().ToString());
Was passiert, wenn Sie 'GetType()' aufrufen? – SLaks
Wow, warum habe ich nicht daran gedacht? Es gibt eine Dezimalzahl zurück. Vielen Dank. – Patty