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(); } } }
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(); } } }
public new System.Type GetType() { return(_da.GetType()); }