OleDbCommand.ExecuteScalar Method

Definition

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.

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

Returns

The first column of the first row in the result set, or a null reference if the result set is empty.

Implements

Exceptions

Cannot execute a command within a transaction context that differs from the context in which the connection was originally enlisted.

Examples

The following example creates an OleDbCommand and then executes it using ExecuteScalar. The example is passed a string that is an SQL statement that returns an aggregate result, and a string to use to connect to the data source.

public void CreateMyOleDbCommand(string queryString,
    OleDbConnection connection)
{
    OleDbCommand command = new OleDbCommand(queryString, connection);
    command.Connection.Open();
    command.ExecuteScalar();
    connection.Close();
}
Public Sub CreateMyOleDbCommand(queryString As String, _
    connection As OleDbConnection)
    Dim command As New OleDbCommand(queryString, connection)
    command.Connection.Open()
    command.ExecuteScalar()
    connection.Close()
End Sub

Remarks

Use the ExecuteScalar method to retrieve a single value, for example, an aggregate value, from a data source. This requires less code than using the ExecuteReader method, and then performing the operations that are required to generate the single value using the data returned by an OleDbDataReader.

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

CommandText = "SELECT COUNT(*) FROM region";  
Int32 count = (int32) ExecuteScalar();  

Applies to

See also