This blog explains you clearly about ExecuteNonQuery, ExecuteScalar and ExecuteReader.
Executes a Transact-SQL statement against the connection and returns the number of rows affected.
ExecuteNonQuery() is one of the most frequently used method in SqlCommand Object and is used for executing statements that do not return result set.
You can use the ExecuteNonQuery to perform catalog operations (for example, querying the structure of a database or creating database objects such as tables), or to change the data in a database without using a DataSet by executing UPDATE, INSERT, or DELETE statements.
For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command. When a trigger exists on a table being inserted or updated, the return value includes the number of rows affected by both the insert or update operation and the number of rows affected by the trigger or triggers. For all other types of statements, the return value is -1. If a rollback occurs, the return value is also -1.
ExecuteScalar
Execute scalar is an Single value single column.
Executes the query, and returns the first column of the first row in the result set returned by the query. Additional columns or rows are ignored.
Use the ExecuteScalar method to retrieve a single value (for example, an aggregate value like sum(),max(),min(),avg()) from a database. This requires less code than using the ExecuteReader method, and then performing the operations that you need to generate the single value using the data returned by a SqlDataReader.
The ExecuteReader() in C# SqlCommand Object sends the SQL statements to the Connection Object and populate a SqlDataReader Object based on the SQL statement.
Execute Reader is an Read only forward only.
Do not use: when database query is going to provide for sure exactly 1 record. It may be getting record by its id (which is PK in the database) - GetOrderById and such. In this case use ExecuteNonQuery with output parameters.
Use: when database query is going to provide a set of records. It may be search or report.