SqlCommand.ExecuteScalar Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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();