SqlCommand.ExecuteScalar Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Exécute la requête et retourne la première colonne de la première ligne dans le jeu de résultats retourné par la requête. Les colonnes ou lignes supplémentaires sont ignorées.
public:
override System::Object ^ ExecuteScalar();
public override object ExecuteScalar ();
override this.ExecuteScalar : unit -> obj
Public Overrides Function ExecuteScalar () As Object
Retours
Première colonne de la première ligne du jeu de résultats, ou référence null ( Nothing
en Visual Basic) si le jeu de résultats est vide. Retourne un maximum de 2033 caractères.
Exceptions
Un SqlDbType autre que Binary ou VarBinary a été utilisé lorsque Value a été défini sur Stream . Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.
- ou -
Un SqlDbType autre que Char, NChar, NVarChar, VarChar ou Xml a été utilisé quand Value a été défini sur TextReader .
-ou-
Un SqlDbType autre que Xml a été utilisé lorsque Value a été défini sur XmlReader .
Une exception s’est produite pendant l’exécution de la commande sur une ligne verrouillée. Cette exception n’est pas générée quand vous utilisez Microsoft .NET Framework version 1.0.
- ou -
Un délai d’attente a été dépassé pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.
La SqlConnection a été fermée ou supprimée pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.
Une erreur s’est produite dans un Stream objet ou XmlReaderTextReader pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.
L’objet Stream ou XmlReaderTextReader a été fermé pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.
Exemples
L’exemple suivant crée un SqlCommand et l’exécute à l’aide de ExecuteScalar. L’exemple montre comment transmettre une chaîne représentant une nouvelle valeur à insérer dans une table et une chaîne à utiliser pour se connecter à la source de données. La fonction retourne la nouvelle valeur de colonne Identity si une nouvelle ligne a été insérée, 0 en cas d’échec.
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();
}
Remarques
Utilisez la ExecuteScalar méthode pour récupérer une valeur unique (par exemple, une valeur d’agrégation) à partir d’une base de données. Cela nécessite moins de code que l’utilisation de la ExecuteReader méthode, puis l’exécution des opérations dont vous avez besoin pour générer la valeur unique à l’aide des données retournées par un SqlDataReader.
Une requête classique ExecuteScalar peut être mise en forme comme dans l’exemple C# suivant :
cmd.CommandText = "SELECT COUNT(*) FROM dbo.region";
Int32 count = (Int32) cmd.ExecuteScalar();