Udostępnij za pośrednictwem


SqlCommand.ExecuteScalar Metoda

Definicja

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

Dotyczy