Freigeben über


Abrufen eines Einzelwerts aus einer Datenbank

Gilt für: .NET Framework .NET .NET Standard

Herunterladen von ADO.NET

Es kann vorkommen, dass Sie lediglich einzelne Werte anstelle von Tabellen oder Datenstreams aus einer Datenbank zurückgeben möchten. Angenommen, Sie möchten das Ergebnis einer Aggregatfunktion wie COUNT(*), SUM(Price) oder AVG(Quantity) zurückgeben. Das Command-Objekt bietet mit der ExecuteScalar-Methode die Möglichkeit, Einzelwerte zurückzugeben. Die ExecuteScalar-Methode gibt den Wert in der ersten Spalte der ersten Zeile des Resultsets als Skalarwert zurück.

Beispiel

Im folgenden Codebeispiel wird mit einem SqlCommand ein neuer Wert in der Datenbank eingefügt. Mit der ExecuteScalar-Methode wird der Wert der Identitätsspalte für den eingefügten Datensatz zurückgegeben.

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

Weitere Informationen: