Delen via


Eén waarde verkrijgen uit een database

Mogelijk moet u databasegegevens retourneren die slechts één waarde zijn in plaats van in de vorm van een tabel of gegevensstroom. U kunt bijvoorbeeld het resultaat van een statistische functie retourneren, zoals COUNT(*), SUM(Price) of AVG(Quantity). Het opdrachtobject biedt de mogelijkheid om enkelvoudige waarden te retourneren met behulp van de methode ExecuteScalar . De methode ExecuteScalar retourneert, als scalaire waarde, de waarde van de eerste kolom van de eerste rij van de resultatenset.

In het volgende codevoorbeeld wordt een nieuwe waarde in de database ingevoegd met behulp van een SqlCommand. De ExecuteScalar methode wordt gebruikt om de waarde van de identiteitskolom voor de ingevoegde record te retourneren.

public static int AddProductCategory(string newName, string connString)
{
    var newProdID = 0;
    const string sql =
        "INSERT INTO Production.ProductCategory (Name) VALUES (@Name); "
        + "SELECT CAST(scope_identity() AS int)";
    using (SqlConnection conn = new(connString))
    {
        SqlCommand cmd = new(sql, conn);
        cmd.Parameters.Add("@Name", SqlDbType.VarChar);
        cmd.Parameters["@name"].Value = newName;
        try
        {
            conn.Open();
            newProdID = (int)cmd.ExecuteScalar();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
    return newProdID;
}
Public Function AddProductCategory( _
  ByVal newName As String, ByVal connString As String) As Integer
    Dim newProdID As Int32 = 0
    Dim sql As String = _
     "INSERT INTO Production.ProductCategory (Name) VALUES (@Name); " _
       & "SELECT CAST(scope_identity() AS int);"

    Using conn As New SqlConnection(connString)
        Dim cmd As New SqlCommand(sql, conn)
        cmd.Parameters.Add("@Name", SqlDbType.VarChar)
        cmd.Parameters("@Name").Value = newName
        Try
            conn.Open()
            newProdID = Convert.ToInt32(cmd.ExecuteScalar())
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
    End Using

    Return newProdID
End Function

Zie ook