The ExecuteNonQuery method doesn't return the return value of your stored procedure, it returns the number of affected rows. Note that this behavior is not something that EntLib does but it is what the raw ADO.NET does. In your case, it probably
returns zero because your stored procedure has the statement
SET NOCOUNT ON.