Probeer expliciet SQL%ROWCOUNT terug te geven.
Volgens MSDN retourneert DbCommand..ExecuteNonQuery altijd -1 voor aanroepen van opgeslagen procedures:
Als ik me goed herinner uit mijn dagen dat ik veel opgeslagen procedures gebruikte, geloof ik dat je een uitvoerargument zou moeten gebruiken om dingen als het aantal bijgewerkte rijen te retourneren.