SqlCommand.ExecuteScalar メソッド
クエリを実行し、そのクエリが返す結果セットの最初の行にある最初の列を返します。残りの列または行は無視されます。
Public Overridable Function ExecuteScalar() As Object Implements _ IDbCommand.ExecuteScalar
[C#]
public virtual object ExecuteScalar();
[C++]
public: virtual Object* ExecuteScalar();
[JScript]
public function ExecuteScalar() : Object;
戻り値
結果セットの最初の行の最初の列。結果セットが空の場合は、null 参照。
実装
例外
例外の種類 | 条件 |
---|---|
SqlException | ロックされている行に対してコマンドを実行しているときに例外が発生しました。この例外は .NET Framework Version 1.0 を使用している場合は生成されません。 |
解説
ExecuteScalar メソッドを使用して、データベースから単一の値 (集計値など) を取得します。 ExecuteReader メソッドを使用し、 SqlDataReader によって返されたデータから単一値を生成するよりも、このメソッドを使用した方がコードが簡潔になります。
ExecuteScalar クエリは、通常、次の形式で指定します。この例は、C# のコード例です。
cmd.CommandText = "select count(*) from region";
Int32 count = (int32) cmd.ExecuteScalar();
使用例
[Visual Basic, C#, C++] SqlCommand を作成し、 ExecuteScalar を使用して実行する例を次に示します。この例では、集計結果を返す Transact-SQL ステートメントの文字列とデータ ソースへの接続に使用する文字列が渡されます。
Public Sub CreateMySqlCommand(myScalarQuery As String, myConnection As SqlConnection)
Dim myCommand As New SqlCommand(myScalarQuery, myConnection)
myCommand.Connection.Open()
myCommand.ExecuteScalar()
myConnection.Close()
End Sub 'CreateMySqlCommand
[C#]
public void CreateMySqlCommand(string myScalarQuery, SqlConnection myConnection)
{
SqlCommand myCommand = new SqlCommand(myScalarQuery, myConnection);
myCommand.Connection.Open();
myCommand.ExecuteScalar();
myConnection.Close();
}
[C++]
public:
void CreateMySqlCommand(String* myScalarQuery, SqlConnection* myConnection)
{
SqlCommand* myCommand = new SqlCommand(myScalarQuery, myConnection);
myCommand->Connection->Open();
myCommand->ExecuteScalar();
myConnection->Close();
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
参照
SqlCommand クラス | SqlCommand メンバ | System.Data.SqlClient 名前空間