ExecuteScalar is typically used when your query returns a single value. If it returns more, then the result is the first column of the first row. An example might be
SELECT @@IDENTITY AS 'Identity'.
ExecuteReader is used for any result set with multiple rows/columns (e.g.,
SELECT col1, col2 from sometable).
ExecuteNonQuery is typically used for SQL statements without results (e.g., UPDATE, INSERT, etc.).
1.It will not return any data.
2.It is used with insert and update.
3.It returns only the number of rows affected.
1.It returns only one value.
2.That value will the first column first row value.
1.Its for command objects.
2.It returns the value given by database through select statement.