コード例 #1
0
 private int UpdateInsertedRows(WizLogisticsDataSet dataSet, List <DataRow> allAddedRows)
 {
     return(0);
 }
コード例 #2
0
 private int UpdateUpdatedRows(WizLogisticsDataSet dataSet, List <DataRow> allChangedRows, List <DataRow> allAddedRows)
 {
     return(0);
 }
コード例 #3
0
        public virtual int UpdateAll(WizLogisticsDataSet dataSet)
        {
            if (dataSet == null)
            {
                throw new ArgumentNullException("dataSet");
            }
            if (!dataSet.HasChanges())
            {
                return(0);
            }
            IDbConnection connection = this.Connection;

            if (connection == null)
            {
                throw new ApplicationException("TableAdapterManager contains no connection information. Set each TableAdapterManager TableAdapter property to a valid TableAdapter instance.");
            }
            bool flag = false;

            if ((connection.State & ConnectionState.Broken) == ConnectionState.Broken)
            {
                connection.Close();
            }
            if (connection.State == ConnectionState.Closed)
            {
                connection.Open();
                flag = true;
            }
            IDbTransaction dbTransaction = connection.BeginTransaction();

            if (dbTransaction == null)
            {
                throw new ApplicationException("The transaction cannot begin. The current data connection does not support transactions or the current state is not allowing the transaction to begin.");
            }
            List <DataRow>     dataRows             = new List <DataRow>();
            List <DataRow>     dataRows1            = new List <DataRow>();
            List <DataAdapter> dataAdapters         = new List <DataAdapter>();
            Dictionary <object, IDbConnection> objs = new Dictionary <object, IDbConnection>();
            int     num      = 0;
            DataSet dataSet1 = null;

            if (this.BackupDataSetBeforeUpdate)
            {
                dataSet1 = new DataSet();
                dataSet1.Merge(dataSet);
            }
            try
            {
                try
                {
                    if (this.UpdateOrder == TableAdapterManager.UpdateOrderOption.UpdateInsertDelete)
                    {
                        num = num + this.UpdateUpdatedRows(dataSet, dataRows, dataRows1);
                        num = num + this.UpdateInsertedRows(dataSet, dataRows1);
                    }
                    else
                    {
                        num = num + this.UpdateInsertedRows(dataSet, dataRows1);
                        num = num + this.UpdateUpdatedRows(dataSet, dataRows, dataRows1);
                    }
                    num = num + this.UpdateDeletedRows(dataSet, dataRows);
                    dbTransaction.Commit();
                    if (0 < dataRows1.Count)
                    {
                        DataRow[] dataRowArray = new DataRow[dataRows1.Count];
                        dataRows1.CopyTo(dataRowArray);
                        for (int i = 0; i < (int)dataRowArray.Length; i++)
                        {
                            dataRowArray[i].AcceptChanges();
                        }
                    }
                    if (0 < dataRows.Count)
                    {
                        DataRow[] dataRowArray1 = new DataRow[dataRows.Count];
                        dataRows.CopyTo(dataRowArray1);
                        for (int j = 0; j < (int)dataRowArray1.Length; j++)
                        {
                            dataRowArray1[j].AcceptChanges();
                        }
                    }
                }
                catch (Exception exception1)
                {
                    Exception exception = exception1;
                    dbTransaction.Rollback();
                    if (this.BackupDataSetBeforeUpdate)
                    {
                        dataSet.Clear();
                        dataSet.Merge(dataSet1);
                    }
                    else if (0 < dataRows1.Count)
                    {
                        DataRow[] dataRowArray2 = new DataRow[dataRows1.Count];
                        dataRows1.CopyTo(dataRowArray2);
                        for (int k = 0; k < (int)dataRowArray2.Length; k++)
                        {
                            DataRow dataRow = dataRowArray2[k];
                            dataRow.AcceptChanges();
                            dataRow.SetAdded();
                        }
                    }
                    throw exception;
                }
            }
            finally
            {
                if (flag)
                {
                    connection.Close();
                }
                if (0 < dataAdapters.Count)
                {
                    DataAdapter[] dataAdapterArray = new DataAdapter[dataAdapters.Count];
                    dataAdapters.CopyTo(dataAdapterArray);
                    for (int l = 0; l < (int)dataAdapterArray.Length; l++)
                    {
                        dataAdapterArray[l].AcceptChangesDuringUpdate = true;
                    }
                }
            }
            return(num);
        }