ExecuteReader - Used where one or more records are returned - SELECT Query. ExecuteNonQuery - Used where it affects a state of the table and no data is being queried - INSERT, UPDATE, DELETE, CREATE and SET queries. ExecuteScalar - Used where it returns a single record.
ExecuteReader - Used where one or more records are returned - SELECT Query.
ExecuteNonQuery - Used where it affects a state of the table and no data is being queried - INSERT, UPDATE, DELETE, CREATE and SET queries.
ExecuteScalar - Used where it returns a single record.