ExecuteNonQuery: is typically used when there is nothing returned from the Sql statements like insert ,update, delete operations.
It will be used when Sql query returns single value.
Ex : to get single value from Sql statements like count , sum , average, or other aggregated value from a database.
Int b = cmd.ExcecuteScalar();
It will be used when Sql query or Stored Procedure returns multiple rows/columns
SqlDataReader dr = cmd.ExecuteReader();