Show / Hide Table of Contents

    ISqlExecutor.SelectOneAsync<TModel>(ISqlQueryBuilder queryBuilder, object[] parameters, CancellationToken cancellationToken) Method

    .NET Standard 2.x

    Asynchronously executes the SQL SELECT statement generated by an ISqlQueryBuilder object and returns the first row in the result set. All other rows are ignored.

    Namespace: SnapObjects.Data

    Assembly: SnapObjects.Data.dll

    Syntax

    public Task<TModel> SelectOneAsync<TModel>(ISqlQueryBuilder queryBuilder, object[] parameters, CancellationToken cancellationToken);
    

    Type Parameters

    TModel

    The datatype of the model object which represents the data row in the result set.

    You can also specify DynamicModel to TModel if you do not want to define a custom model class.

    Parameters

    queryBuilder SnapObjects.Data.ISqlQueryBuilder

    A SqlQueryBuilder object which can be used to generate a SQL SELECT statement.

    parameters System.Object[]

    One or more 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 objects.

    cancellationToken CancellationToken

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

    Returns

    Task<TModel>

    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 build and execute the SQL statement using SqlQueryBuilder and put the first row of the result set to a model object. 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 SelectOneAsyncExample
        {
            private readonly SchoolContext _context;
            
            public SelectOneAsyncExample(SchoolContext dataContext)
            {
                // Sets the data context
                _context = dataContext;
            }
    
            public async Task<DynamicModel> Example4(CancellationTokenSource cts)
            {
                // Creates SqlQueryBuilder.
                var builder = new SqlQueryBuilder();
                
                // Defines the SQL statement.
                builder.Select("CourseID")
                       .Select("Title")
                       .From("Course")
                       .Where("Credits", SqlBuilder.Parameter<int>("creditsid"));
                       
                int creditsid = 1061;
                DynamicModel result = null;
                
                try
                {
                    // If a task has been cancelled, the call to the 
                    // SqlExecutor.SelectOneAsync method throws an OperationCanceledException.
                    result = await _context.SqlExecutor.SelectOneAsync<DynamicModel>(
                                builder, new object[] { creditsid }, cts.Token);
                            
                    string title = result.GetValue<string>("Title");
                    
                    Console.WriteLine("Title: {0}", title);
                }
                catch (OperationCanceledException e)
                {
                    // The operation was cancelled before completion.
                    Console.WriteLine(e.Message);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
                finally
                {
                    cts.Dispose();
                }
                
                return result;
                
                /* This code produces the following output:
                
                    A task was canceled.
                */
            }
        }
    }
    

    Applies to

    .NET Standard

    2.x

    Back to top Generated by Appeon