示例#1
0
        /// <summary>
        /// Performs all update operations for changed rows in a table
        /// </summary>
        public int SaveChanges(DataTable dataTable)
        {
            if (dataTable == null)
            {
                throw new ArgumentNullException("dataTable");
            }

            DataTableCommandBuilder builder = CreateCommandBuilder(dataTable, Connection);

            builder.SequenceName = SequenceName;

            DbDataAdapter dataAdapter = _providerFactory.CreateDataAdapter();

            dataAdapter.UpdateCommand = builder.UpdateCommand;
            dataAdapter.DeleteCommand = builder.DeleteCommand;
            dataAdapter.InsertCommand = builder.InsertCommand;

            // enroll in transactions
            EnrollInTransaction(dataAdapter.UpdateCommand);
            EnrollInTransaction(dataAdapter.DeleteCommand);
            EnrollInTransaction(dataAdapter.InsertCommand);

            if (BeforeSaveChanges != null)
            {
                var args = new TableSaveEventArgs(dataAdapter, dataTable);
                BeforeSaveChanges(this, args);

                if (args.Cancel)
                {
                    throw new OperationCanceledException("Save Changes Canceled");
                }
            }

            return(dataAdapter.Update(dataTable));
        }
示例#2
0
        /// <summary>
        /// Fills DataTable with simple text filter
        /// </summary>
        public void Fill(DataTable dataTable, string filter)
        {
            if (dataTable == null)
            {
                throw new ArgumentNullException("dataTable");
            }

            DbDataAdapter           dataAdapter = _providerFactory.CreateDataAdapter();
            DataTableCommandBuilder builder     = CreateCommandBuilder(dataTable, Connection);

            dataAdapter.SelectCommand = builder.GetSelectCommand(filter);
            dataAdapter.TableMappings.Add("Table", dataTable.TableName);
            dataAdapter.Fill(dataTable);
        }
示例#3
0
        /// <summary>
        /// Fills DataTable with filtered data. Parameters are passed
        /// using SqlParamater objects.
        /// </summary>
        public void Fill(DataTable dataTable, string filter, params object[] parameters)
        {
            if (dataTable == null)
            {
                throw new ArgumentNullException("dataTable");
            }

            DbDataAdapter           dataAdapter = _providerFactory.CreateDataAdapter();
            DataTableCommandBuilder builder     = CreateCommandBuilder(dataTable, Connection);

            dataAdapter.SelectCommand = builder.GetSelectCommand(filter);
            EnrollInTransaction(dataAdapter.SelectCommand);

            DataManager.AddParamsToCommand(dataAdapter.SelectCommand, SqlDialect, parameters);

            dataAdapter.TableMappings.Add("Table", dataTable.TableName);
            dataAdapter.Fill(dataTable);
        }
示例#4
0
        /// <summary>
        /// Performs all update operations for changed rows in a table
        /// </summary>
        public int SaveChanges(DataTable dataTable)
        {
            if (dataTable == null)
            {
                throw new ArgumentNullException("dataTable");
            }

            DataTableCommandBuilder builder = CreateCommandBuilder(dataTable, Connection);

            builder.SequenceName = SequenceName;

            DbDataAdapter dataAdapter = _providerFactory.CreateDataAdapter();

            dataAdapter.UpdateCommand = builder.UpdateCommand;
            dataAdapter.DeleteCommand = builder.DeleteCommand;
            dataAdapter.InsertCommand = builder.InsertCommand;

            return(dataAdapter.Update(dataTable));
        }