Freigeben über


SqlCommand.ExecuteScalar Methode

Definition

Führt die Abfrage aus und gibt die erste Spalte der ersten Zeile in dem von der Abfrage zurückgegebenen Resultset zurück. Weitere Spalten oder Zeilen werden ignoriert.

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

Gibt zurück

Die erste Spalte der ersten Zeile im Resultset oder ein NULL-Verweis ( Nothing in Visual Basic), wenn das Resultset leer ist. Gibt maximal 2.033 Zeichen zurück.

Ausnahmen

Ein SqlDbType anderes als Binary oder VarBinary wurde verwendet, wenn Value auf Stream festgelegt wurde. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).

- oder -

Ein SqlDbType anderes als Char, NChar, NVarChar, VarChar oder Xml wurde verwendet, wenn Value auf TextReader festgelegt wurde.

Oder

Ein SqlDbType anderer als Xml wurde verwendet, wenn Value auf XmlReader festgelegt wurde.

Beim Ausführen des Befehls für eine gesperrte Zeile ist eine Ausnahme aufgetreten. Diese Ausnahme tritt in Microsoft .NET Framework 1.0 nicht auf.

- oder -

Bei einem Streamingvorgang ist ein Timeout aufgetreten. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).

Die SqlConnection wurde während eines Streamingvorgangs geschlossen oder getrennt. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).

Während eines Streamingvorgangs ist ein Fehler in einem Stream - XmlReader oder TextReader -Objekt aufgetreten. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).

Das Stream - XmlReader oder TextReader -Objekt wurde während eines Streamingvorgangs geschlossen. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).

Beispiele

Im folgenden Beispiel wird ein SqlCommand erstellt und dann mit ExecuteScalarausgeführt. Im Beispiel wird eine Zeichenfolge übergeben, die einen neuen Wert darstellt, der in eine Tabelle eingefügt werden soll, und eine Zeichenfolge, die zum Herstellen einer Verbindung mit der Datenquelle verwendet werden soll. Die Funktion gibt den neuen Wert der Identity-Spalte zurück, wenn eine neue Zeile eingefügt wurde, bei Fehler 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();
    }

Hinweise

Verwenden Sie die ExecuteScalar -Methode, um einen einzelnen Wert (z. B. einen Aggregatwert) aus einer Datenbank abzurufen. Dies erfordert weniger Code als die Verwendung der ExecuteReader -Methode und führt dann die Vorgänge aus, die Sie benötigen, um den einzelnen Wert mithilfe der von einem SqlDataReaderzurückgegebenen Daten zu generieren.

Eine typische ExecuteScalar Abfrage kann wie im folgenden C#-Beispiel formatiert werden:

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

Gilt für: