ExecuteNonQuery
ExecuteScalar("SELECT @@Identity")
I am skeptical because of round-robin and concurrency issues that this way is reliable but I am curious what SQL approach you are using.
keep in mind that ExecuteScalar returns 1 value, not the 1st row/column. Subtle difference.