SqlCommand.ExecuteScalar メソッド

定義

クエリを実行し、クエリによって返される結果セットの先頭行の最初の列を返します。 その他の列または行は無視されます。

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

戻り値

結果セットの最初の行の最初の列、または結果セットが空の場合は null 参照 ( Nothing Visual Basic の場合)。 最大 2033 文字を返します。

例外

SqlDbTypeが にStream設定されている場合は、Binary または VarBinary 以外の がValue使用されました。 ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。

- または -

SqlDbTypeが にTextReader設定されている場合ValueCharNCharNVarCharVarCharまたは Xml 以外の が使用されました。

または

SqlDbTypeが にXmlReader設定されている場合は、Xml 以外の がValue使用されました。

ロックされた行に対するコマンドの実行中に、例外が発生しました。 Microsoft .NET Framework バージョン 1.0 を使用している場合は、この例外は生成されません。

- または -

ストリーミング操作中にタイムアウトが発生しました。 ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。

ストリーミング操作中に、SqlConnection が閉じられたか切断されました。 ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。

ストリーミング操作中に、 StreamXmlReader オブジェクトまたは TextReader オブジェクトでエラーが発生しました。 ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。

XmlReader、または TextReader オブジェクトはStream、ストリーミング操作中に閉じられました。 ストリーミングの詳細については、「SqlClient ストリーミング サポート」を参照してください。

次の例では、 を SqlCommand 作成し、 を使用して ExecuteScalar実行します。 この例では、テーブルに挿入する新しい値を表す文字列と、データ ソースへの接続に使用する文字列が渡されます。 この関数は、新しい行が挿入された場合は新しい Identity 列の値を返します。失敗した場合は 0 です。

using System;
using System.Data;
using Microsoft.Data.SqlClient;

public class Sample
{

    public void CreateSqlCommand(
        string queryString, SqlConnection connection)
    {
        SqlCommand command = new
            SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteScalar();
        connection.Close();
    }

注釈

メソッドを ExecuteScalar 使用して、データベースから単一の値 (集計値など) を取得します。 これには、 メソッドを使用するよりも少ないコードを必要 ExecuteReader とし、 によって返されるデータを使用して単一の値を生成するために必要な操作を SqlDataReader実行する必要があります。

一般的な ExecuteScalar クエリは、次の C# の例のように書式設定できます。

cmd.CommandText = "SELECT COUNT(*) FROM dbo.region";
Int32 count = (Int32) cmd.ExecuteScalar();

適用対象