Dmitry-
>I am using ExecuteNonQuery(). Are you suggesting that I can call to SP using ExecuteScalar() and return a value?
Yep. That should do the trick for you. ExecuteNonQuery will always return the number of rows affected. ExecuteScalar will return the result of the Stored Procedure.
For example, I have a stored procedure that creates a record and returns the ID of the record similar to the help example,
Int32 id = (int32) ExecuteScalar();
HTH.