SqlCommand.ExecuteScalar Metodo

Definizione

Esegue la query e restituisce la prima colonna della prima riga nel set di risultati restituito dalla query. Eventuali colonne o righe aggiuntive vengono ignorate.

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

Restituisce

La prima colonna della prima riga nel set di risultati o un riferimento Null ( Nothing in Visual Basic) se il set di risultati è vuoto. Restituisce fino a 2033 caratteri.

Eccezioni

Un SqlDbType oggetto diverso da Binary o VarBinary è stato usato quando Value è stato impostato su Stream . Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.

-oppure-

Un SqlDbType oggetto diverso da Char, NChar, NVarChar, VarChar o Xml è stato usato quando Value è stato impostato su TextReader .

-oppure-

È SqlDbType stato utilizzato un valore diverso da Xml quando Value è stato impostato su XmlReader .

È stata generata un'eccezione durante l'esecuzione del comando su una riga bloccata. Tale eccezione non viene generata quando si usa Microsoft .NET Framework Versione 1.0.

-oppure-

Si è verificato un timeout durante un'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.

L'elemento SqlConnection chiuso o eliminato durante l'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.

Si è verificato un errore in un Stream oggetto o XmlReaderTextReader durante un'operazione di streaming. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.

L'oggetto Stream o XmlReaderTextReader è stato chiuso durante un'operazione di streaming. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.

Esempio

Nell'esempio seguente viene creato un oggetto SqlCommand e quindi viene eseguito usando ExecuteScalar. Nell'esempio viene passata una stringa che rappresenta un nuovo valore da inserire in una tabella e una stringa da utilizzare per connettersi all'origine dati. La funzione restituisce il nuovo valore della colonna Identity se è stata inserita una nuova riga, 0 in caso di errore.

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

Commenti

Utilizzare il ExecuteScalar metodo per recuperare un singolo valore (ad esempio, un valore di aggregazione) da un database. Questo richiede meno codice rispetto all'uso del ExecuteReader metodo e quindi l'esecuzione delle operazioni necessarie per generare il singolo valore usando i dati restituiti da un oggetto SqlDataReader.

Una query tipica ExecuteScalar può essere formattata come nell'esempio C# seguente:

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

Si applica a