IDbCommand.ExecuteScalar Method


Executes the query, and returns the first column of the first row in the resultset returned by the query. Extra columns or rows are ignored.

 System::Object ^ ExecuteScalar();
public object? ExecuteScalar ();
public object ExecuteScalar ();
abstract member ExecuteScalar : unit -> obj
Public Function ExecuteScalar () As Object


The first column of the first row in the resultset.


The following example creates an instance of the derived class, SqlCommand, and then executes it using ExecuteScalar. The example is passed a string that is a Transact-SQL statement that returns an aggregate result, and a string to use to connect to the data source.

public void CreateSqlCommand(
    string queryString, SqlConnection connection)
    SqlCommand command = new
        SqlCommand(queryString, connection);
Public Sub CreateSqlCommand( _
    queryString As String, connection As SqlConnection)

    Dim command As New SqlCommand(queryString, connection)
End Sub


Use the ExecuteScalar method to retrieve a single value (for example, an aggregate value) from a database. This requires less code than using the ExecuteReader method, and then performing the operations necessary to generate the single value using the data returned by an IDataReader.

A typical ExecuteScalar query can be formatted as in the following C# example:

CommandText = "select count(*) as NumberOfRegions from region";  
Int32 count = (int) ExecuteScalar();  

If the first column of the first row in the result set is not found, a null reference (Nothing in Visual Basic) is returned. If the value in the database is null, the query returns DBNull.Value.

Applies to