Condividi tramite


Recupero di un valore singolo da un database

Si applica a: .NET Framework .NET .NET Standard

Scarica ADO.NET

Può essere necessario restituire informazioni del database costituite semplicemente da un singolo valore anziché da una tabella o da un flusso di dati. È possibile, ad esempio, restituire il risultato di una funzione di aggregazione quale COUNT(*), SUM(Price) o AVG(Quantity). L'oggetto Command consente di restituire singoli valori usando il metodo ExecuteScalar. Il metodo ExecuteScalar restituisce come valore scalare il valore della prima colonna della prima riga del set di risultati.

Esempio

Nell'esempio di codice seguente viene inserito un nuovo valore nel database usando un SqlCommand. Per restituire il valore della colonna Identity per il record inserito, viene usato il metodo ExecuteScalar.

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

Vedi anche