Compartilhar via


Obter um único valor de um banco de dados

Aplicável a: .NET Framework .NET .NET Standard

Baixar ADO.NET

Talvez seja necessário retornar informações do banco de dados que sejam um único valor, não um formato de tabela ou fluxo de dados. Por exemplo, convém retornar o resultado de uma função de agregação, como COUNT(*), SUM(Price) ou AVG(Quantity). O objeto Command fornece a capacidade de retornar valores únicos usando o método ExecuteScalar. O método ExecuteScalar retorna, como um valor escalar, o valor da primeira coluna da primeira linha do conjunto de resultados.

Exemplo

O exemplo de código a seguir insere um novo valor no banco de dados usando um SqlCommand. O método ExecuteScalar é usado para retornar o valor da coluna de identidade para o registro inserido.

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

Confira também