You can get -1 after calling ExecuteNonQuery() with stored procedure having insert/delete/update query. This happens if stored procedure do not call any query(Insert/Update/Delete). Here is one example which will help you to understand this.
StoredProcedure- MySQL
DELIMITER $$
DROP PROCEDURE IF EXISTS sp_DML $$
CREATE PROCEDURE sp_DML
(
P_Operation varchar(50)
)
BEGIN
if(P_Operation='Insert')
/* Insert Statment*/
end if;
if(P_Operation='Update')
/* Update Statment*/
end if;
if(P_Operation='Delete')
/*Delete Statment*/
end if;
END$$
If u call this SP using ExecuteNonQuery(); and passing parameter P_Operation as 'NoOpeartion' which does not satisfy any condition written into Stored procedure then it will always return -1.