SqlCommand.ExecuteScalar Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wykonuje zapytanie i zwraca pierwszą kolumnę pierwszego wiersza w zestawie wyników zwróconym przez zapytanie. Dodatkowe kolumny lub wiersze są ignorowane.
public:
override System::Object ^ ExecuteScalar();
public override object ExecuteScalar ();
override this.ExecuteScalar : unit -> obj
Public Overrides Function ExecuteScalar () As Object
Zwraca
Pierwsza kolumna pierwszego wiersza w zestawie wyników lub odwołanie o wartości null ( Nothing
w Visual Basic), jeśli zestaw wyników jest pusty. Zwraca maksymalnie 2033 znaki.
Wyjątki
Użyto SqlDbType wartości innej niż Binary lub VarBinary , gdy Value ustawiono wartość Stream . Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.
-lub-
Użyto SqlDbType wartości innej niż Char, NChar, NVarChar, VarChar lub Xml , gdy Value ustawiono wartość TextReader .
-lub-
Element SqlDbType inny niż Xml był używany, gdy Value został ustawiony na XmlReader wartość .
Wystąpił wyjątek podczas wykonywania polecenia względem zablokowanego wiersza. Ten wyjątek nie jest generowany podczas korzystania z usługi Microsoft .NET Framework w wersji 1.0.
-lub-
Podczas operacji przesyłania strumieniowego wystąpiło przekroczenie limitu czasu. Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.
Zamknięty SqlConnection lub porzucony podczas operacji przesyłania strumieniowego. Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.
Wystąpił błąd w StreamXmlReader obiekcie lub TextReader podczas operacji przesyłania strumieniowego. Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.
XmlReader Obiekt Stream lub TextReader został zamknięty podczas operacji przesyłania strumieniowego. Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz Obsługa przesyłania strumieniowego SqlClient.
Przykłady
Poniższy przykład tworzy obiekt , SqlCommand a następnie wykonuje go przy użyciu polecenia ExecuteScalar. Przykład jest przekazywany ciąg reprezentujący nową wartość, która ma zostać wstawiona do tabeli, oraz ciąg używany do nawiązywania połączenia ze źródłem danych. Funkcja zwraca nową wartość kolumny Identity , jeśli został wstawiony nowy wiersz, 0 w przypadku niepowodzenia.
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();
}
Uwagi
ExecuteScalar Użyj metody , aby pobrać pojedynczą wartość (na przykład zagregowaną wartość) z bazy danych. Wymaga to mniejszej ExecuteReader ilości kodu niż użycie metody, a następnie wykonania operacji, które należy wygenerować pojedynczą wartość przy użyciu danych zwróconych przez metodę SqlDataReader.
Typowe ExecuteScalar zapytanie można sformatować tak, jak w poniższym przykładzie w języku C#:
cmd.CommandText = "SELECT COUNT(*) FROM dbo.region";
Int32 count = (Int32) cmd.ExecuteScalar();