Exemple #1
0
        public override void Insert <TDataSource>(string insert, TDataSource dataSource, IEnumerable <IDbDataParameter> parameters)
        {
            if (insert == null)
            {
                throw new ArgumentNullException(nameof(insert));
            }
            if (!_typesAllowed.Contains(typeof(TDataSource)))
            {
                throw new ArgumentException("The data source types allowed are DataSet, DataTable, DataRow[]", nameof(dataSource));
            }
            try
            {
                _sqlDataAdapter = new SqlDataAdapter
                {
                    InsertCommand = new SqlCommand(insert, _sqlConnection)
                };
                if (!_transactionActive)
                {
                    _sqlConnection.ConnectionString = ConnectionString;
                    _sqlConnection.Open();
                }
                else
                {
                    _sqlDataAdapter.InsertCommand.Transaction = _sqlTransaction;
                }

                if (parameters != null)
                {
                    foreach (SqlParameter sqlParameter in parameters.Where(sqlParameter => sqlParameter != null))
                    {
                        _sqlDataAdapter.InsertCommand.Parameters.Add(sqlParameter);
                    }
                }

                var sqlAdapterType = _sqlDataAdapter.GetType();
                var methodInfo     = sqlAdapterType.GetMethod("Update", new[] { typeof(TDataSource) });
                methodInfo.Invoke(_sqlDataAdapter, new object[] { dataSource });
            }
            catch (Exception)
            {
                if (_transactionActive)
                {
                    IsAllOkTransaction = false;
                }
                throw;
            }
            finally
            {
                if (!_transactionActive)
                {
                    _sqlConnection.Close();
                }
            }
        }
Exemple #2
0
        public override void Update <TDataSource>(string update, TDataSource dataSource, IEnumerable <IDbDataParameter> parameters, bool isStored,
                                                  out string error, out Exception exception)
        {
            if (!_typesAllowed.Contains(typeof(TDataSource)))
            {
                throw new ArgumentException("The data source types allowed are DataSet, DataTable, DataRow[]", nameof(dataSource));
            }
            error     = string.Empty;
            exception = null;
            try
            {
                _sqlDataAdapter = new SqlDataAdapter
                {
                    UpdateCommand = new SqlCommand(update, _sqlConnection)
                };
                _sqlDataAdapter.UpdateCommand.CommandType = isStored ? CommandType.StoredProcedure : CommandType.Text;

                if (!_transactionActive)
                {
                    _sqlConnection.ConnectionString = ConnectionString;
                    _sqlConnection.Open();
                }
                else
                {
                    _sqlDataAdapter.UpdateCommand.Transaction = _sqlTransaction;
                }

                if (parameters != null)
                {
                    foreach (var sqlParameter in parameters.Where(sqlParameter => sqlParameter != null))
                    {
                        _sqlDataAdapter.UpdateCommand.Parameters.Add(sqlParameter);
                    }
                }

                var sqlAdapterType = _sqlDataAdapter.GetType();
                var methodInfo     = sqlAdapterType.GetMethod("Update", new[] { typeof(TDataSource) });
                methodInfo.Invoke(_sqlDataAdapter, new object[] { dataSource });
            }
            finally
            {
                if (!_transactionActive)
                {
                    _sqlConnection.Close();
                }
            }
        }
Exemple #3
0
 public new System.Type GetType()
 {
     return(_da.GetType());
 }