IDbCommand.ExecuteScalar メソッド


クエリを実行し、そのクエリが返す結果セットの最初の行にある最初の列を返します。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.

次の例では、派生クラスのインスタンスを作成し、を使用して SqlCommand それを実行し ExecuteScalar ます。The following example creates an instance of the derived class, SqlCommand, and then executes it using ExecuteScalar. この例には、集計結果を返す Transact-sql ステートメントである文字列と、データソースへの接続に使用する文字列が渡されます。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


ExecuteScalarデータベースから1つの値 (集計値など) を取得するには、メソッドを使用します。Use the ExecuteScalar method to retrieve a single value (for example, an aggregate value) from a database. これには、メソッドを使用するよりも少ないコードが必要です ExecuteReader 。その後、によって返されるデータを使用して、1つの値を生成するために必要な操作を実行し IDataReader ます。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.

一般的な ExecuteScalar クエリは、次の C# の例のように書式設定できます。A typical ExecuteScalar query can be formatted as in the following C# example:

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

結果セットの最初の行の最初の列が見つからない場合は、null 参照 ( Nothing Visual Basic) が返されます。If the first column of the first row in the result set is not found, a null reference (Nothing in Visual Basic) is returned. データベースの値がの場合 null 、クエリはを返し DBNull.Value ます。If the value in the database is null, the query returns DBNull.Value.