Show / Hide Table of Contents

    ISqlExecutor.ScalarAsync<TValue>(string sqlText, params object[] parameters, CancellationToken cancellationToken) Method

    .NET Standard 2.x

    Asynchronously executes the SQL SELECT statement and returns the first column of the first row in the result set. All other columns and rows are ignored.

    Namespace: SnapObjects.Data

    Assembly: SnapObjects.Data.dll

    Syntax

    public Task<TValue> ScalarAsync<TValue>(string sqlText, object[] parameters, CancellationToken cancellationToken);
    

    Type Parameters

    TValue

    The datatype of the first column in the result set.

    Parameters

    sqlText System.String

    A raw SQL statement which contains the parameter placeholders.

    The proper syntax of a parameter placeholder is specific to the data source (e.g., @newFirstName for SQL Server). To make a parameterized SQL ( e.g, update Person set FirstName = @newFirstName where PersonId = 1), these placeholders are filled in with the actual parameter values when the SQL statement is executed.

    parameters System.Object[]

    One or more ParamValue objects which contain the values corresponding to the SQL parameter identifier names.

    You can also pass the arguments directly in the order in which each parameter identifier name appears in sqlText for the first time, without using the ParamValue objects.

    cancellationToken CancellationToken

    A cancellation token that can be used by other objects or threads to receive notice of cancellation.

    Returns

    Task<TValue>

    Returns a task that represents the asynchronous operation.

    Remarks

    You can use parameter placeholders in the raw SQL Statement. It is recommended to use the syntax for parameter placeholders that is specific to the data source. e.g., uses @parametername for SQL Server and uses :parametername for Oracle.

    Examples

    The following code example demonstrates how to use the ScalarAsync(String, params Object[], CancellationTokenSource) method to execute the SQL SELECT statement and return the first column of the first row in the result set. It uses a CancellationTokenSource type parameter to make this operation cancelable.

    using System;
    using System.Threading;
    using System.Threading.Tasks;
    using SnapObjects.Data;
    
    namespace Appeon.ApiDoc.ISqlExecutorExamples
    {
        public class ScalarAsyncExample
        {
            private readonly SchoolContext _context;
            
            public ScalarAsyncExample(SchoolContext dataContext)
            {
                // Sets the data context.
                _context = dataContext;
            }
    
            public async Task<string> Example2(CancellationTokenSource cts)
            {
                // Define the SQL Statement.
                string sql = "select LastName from Person where PersonID = @id";
                
                string lastName = null;
                try
                {
                    // If a task has been cancelled, the call to the 
                    // SqlExecutor.ScalarAsync method throws an OperationCanceledException.
                    lastName = await _context.SqlExecutor.ScalarAsync<string>(
                        sql, new object[] { 18 }, cts.Token);
                            
                    Console.WriteLine("Title: {0}", lastName);
                }
                catch (OperationCanceledException e)
                {
                    // The operation was cancelled before completion.
                    Console.WriteLine(e.Message);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
                finally 
                {
                    cts.Dispose();
                }
                
                return lastName;
                
                /* This code produces the following output:
                
                    A task was canceled.
                */
            }
        }
    }
    

    Applies to

    .NET Standard

    2.x

    Back to top Generated by Appeon