SqlCommand.ExecuteScalar Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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();