En SQL Server, ID es un entero no nulo y una identidad.¿Qué tipo de datos devuelve el método SQLCommand ExecuteScalar()?
Cuando ejecuto el siguiente código, me sale un InvalidCastException en la última línea:
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();
¿Cuál es ExecuteScalar() volver aquí? Cualquiera que sea su regreso tiene un ToString() que hace que se vea como un número, por lo que esta línea tremenda de código funciona:
int id = Int32.Parse(cmd.ExecuteScalar().ToString());
¿Qué sucede si llama a 'GetType()'? – SLaks
Guau, ¿por qué no pensé en eso? Devuelve un decimal. Gracias. – Patty