public override async Task <int> ExecuteNonQueryAsync(CancellationToken cancellationToken) { _isAsync = true; base.SetCommand(true); if (_preparedQuery.Commands.Length == 1) { await _dataConnection.InitCommandAsync( CommandType.Text, _preparedQuery.Commands[0], null, _preparedQuery.QueryHints, cancellationToken); if (_preparedQuery.Parameters != null) { foreach (var p in _preparedQuery.Parameters) { _dataConnection.Command.Parameters.Add(p); } } return(await _dataConnection.ExecuteNonQueryAsync(cancellationToken)); } for (var i = 0; i < _preparedQuery.Commands.Length; i++) { await _dataConnection.InitCommandAsync( CommandType.Text, _preparedQuery.Commands[i], null, i == 0?_preparedQuery.QueryHints : null, cancellationToken); if (i == 0 && _preparedQuery.Parameters != null) { foreach (var p in _preparedQuery.Parameters) { _dataConnection.Command.Parameters.Add(p); } } if (i < _preparedQuery.Commands.Length - 1 && _preparedQuery.Commands[i].StartsWith("DROP")) { try { await _dataConnection.ExecuteNonQueryAsync(cancellationToken); } catch { } } else { await _dataConnection.ExecuteNonQueryAsync(cancellationToken); } } return(-1); }
/// <summary> /// Executes command asynchronously and returns number of affected records. /// </summary> /// <param name="cancellationToken">Asynchronous operation cancellation token.</param> /// <returns>Task with number of records, affected by command execution.</returns> public async Task <int> ExecuteAsync(CancellationToken cancellationToken) { await DataConnection.InitCommandAsync(CommandType, CommandText, Parameters, cancellationToken); if (Parameters != null && Parameters.Length > 0) { SetParameters(DataConnection, Parameters); } return(await DataConnection.ExecuteNonQueryAsync(cancellationToken)); }
/// <summary> /// Executes command asynchronously and returns number of affected records. /// </summary> /// <param name="cancellationToken">Asynchronous operation cancellation token.</param> /// <returns>Task with number of records, affected by command execution.</returns> public async Task <int> ExecuteAsync(CancellationToken cancellationToken) { await DataConnection.EnsureConnectionAsync(cancellationToken); DataConnection.InitCommand(CommandType, CommandText, Parameters, null); var hasParameters = Parameters != null && Parameters.Length > 0; if (hasParameters) { SetParameters(DataConnection, Parameters); } var commandResult = await DataConnection.ExecuteNonQueryAsync(cancellationToken); if (hasParameters) { RebindParameters(DataConnection, Parameters); } return(commandResult); }