Obtention d'une valeur unique à partir d'une base de données
S'applique à : .NET Framework .NET .NET Standard
Vous aurez peut-être besoin de retourner des informations de base de données qui sont simplement une valeur unique plutôt qu'une table ou un flux de données. Par exemple, vous souhaitez éventuellement retourner le résultat d'une fonction d'agrégation telle que COUNT(*), SUM(Price) ou AVG(Quantity). L'objet Commande fournit la capacité permettant de retourner des valeurs uniques à l'aide de la méthode ExecuteScalar. La méthode ExecuteScalar retourne sous forme de valeur scalaire la valeur de la première colonne de la première ligne du jeu de résultats.
Exemple
L'exemple de code suivant insère une nouvelle valeur dans la base de données en utilisant un objet SqlCommand. La méthode ExecuteScalar est utilisée pour retourner la valeur de la colonne d'identité de l'enregistrement inséré.
static public int AddProductCategory(string newName, string connString)
{
Int32 newProdID = 0;
string sql =
"INSERT INTO Production.ProductCategory (Name) VALUES (@Name); "
+ "SELECT CAST(scope_identity() AS int)";
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@Name", SqlDbType.VarChar);
cmd.Parameters["@name"].Value = newName;
try
{
conn.Open();
newProdID = (Int32)cmd.ExecuteScalar();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
return (int)newProdID;
}