You can use
DBNull.Value[
^] to set a null value.
cmd.Parameters.Add("@HospitalId", SqlDbType.Int).Value = DBNull.Value;
You could also make the parameter of the stored procedure
default to NULL[
^], that way you would not need to set the parameter if no value is needed.