Sdílet prostřednictvím


SqlCommand.ExecuteScalar Metoda

Definice

Spustí dotaz a vrátí první sloupec prvního řádku v sadě výsledků vrácené dotazem. Další sloupce nebo řádky se ignorují.

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

Návraty

První sloupec prvního řádku v sadě výsledků nebo odkaz null ( Nothing v jazyce Visual Basic), pokud je sada výsledků prázdná. Vrátí maximálně 2033 znaků.

Výjimky

Při SqlDbType nastavení na Stream hodnotu byla použita Value jiná hodnota než Binary nebo VarBinary. Další informace o streamování najdete v tématu Podpora streamování SqlClient.

-nebo-

Při SqlDbType nastavení na TextReader hodnotu se použila Value jiná hodnota než Char, NChar, NVarChar, VarChar nebo XML.

-nebo-

Při SqlDbType nastavení na XmlReader hodnotu byla použita Value jiná hodnota než XML.

Při provádění příkazu na uzamčený řádek došlo k výjimce. Tato výjimka se negeneruje, pokud používáte rozhraní Microsoft .NET Framework verze 1.0.

-nebo-

Během operace streamování došlo k vypršení časového limitu. Další informace o streamování najdete v tématu Podpora streamování SqlClient.

Zavřený SqlConnection nebo vynechaný během operace streamování. Další informace o streamování najdete v tématu Podpora streamování SqlClient.

Během operace streamování došlo v objektu Stream nebo TextReaderXmlReader k chybě. Další informace o streamování najdete v tématu Podpora streamování SqlClient.

Objekt Stream nebo XmlReaderTextReader byl uzavřen během operace streamování. Další informace o streamování najdete v tématu Podpora streamování SqlClient.

Příklady

Následující příklad vytvoří a pak ho SqlCommand spustí pomocí ExecuteScalar. Příklad je předán řetězec představující novou hodnotu, která se má vložit do tabulky, a řetězec, který se má použít pro připojení ke zdroji dat. Funkce vrátí novou hodnotu sloupce Identita , pokud byl vložen nový řádek, 0 při selhání.

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();
    }

Poznámky

Použijte metodu ExecuteScalar k načtení jedné hodnoty (například agregační hodnoty) z databáze. To vyžaduje méně kódu než použití ExecuteReader metody a provedení operací potřebných k vygenerování jedné hodnoty pomocí dat vrácených SqlDataReadernástrojem .

Typický ExecuteScalar dotaz je možné naformátovat jako v následujícím příkladu jazyka C#:

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

Platí pro