I need to insert a line in my question table and retrieve the inserted id. I initialize my sql command and execute it with ExecuteScalar(). I'm trying to convert the result of this method to int but I can not do it. 
I tried to do that:
int result = Convert.ToInt32(Command.ExecuteScalar));
or
int result = (int)Command.ExecuteScalar();
but nothing work
here is my function
public int AddQuestionOrientation(Question questionForAdd)
    {
        try
        {
            con = new SqlConnection(connectionString);
            con.Open();
            SqlCommand command;
            String sql = "";
            sql = "INSERT INTO QUESTION VALUES(@Libelle, 
            @Bareme,2,@Filliere)";
            SqlParameter param = new SqlParameter();
            param.ParameterName = "@Libelle";
            param.Value = questionForAdd.Libelle;
            SqlParameter param2 = new SqlParameter();
            param2.ParameterName = "@Bareme";
            param2.Value = questionForAdd.Bareme;
            SqlParameter param3 = new SqlParameter();
            param3.ParameterName = "@Filliere";
            param3.Value = questionForAdd.IdFiliere;
            command = new SqlCommand(sql, con);
            command.Parameters.Add(param);
            command.Parameters.Add(param2);
            command.Parameters.Add(param3);
            int idQuestionInserted = (int)command.ExecuteScalar();
            command.Dispose();
            con.Close();
            return idQuestionInserted;
        }
        catch(Exception ex)
        {
            return 0;
        }
    }
If I try with the cast (int), I have the message error:
Object reference not set to an instance of an object
If I try with the Convert.ToInt32, my variable "IdQuestionInserted" is equal to 0.
 
     
     
     
    