Esempio n. 1
0
 private int UpdateInsertedRows(labtechDataSet dataSet, List <DataRow> allAddedRows)
 {
     return(0);
 }
Esempio n. 2
0
 private int UpdateUpdatedRows(labtechDataSet dataSet, List <DataRow> allChangedRows, List <DataRow> allAddedRows)
 {
     return(0);
 }
Esempio n. 3
0
        public virtual int UpdateAll(labtechDataSet dataSet)
        {
            DataRow[] dataRowArray;
            int       i;
            DataRow   dataRow;
            int       num;

            if (dataSet == null)
            {
                throw new ArgumentNullException("dataSet");
            }
            if (dataSet.HasChanges())
            {
                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     num1     = 0;
                DataSet dataSet1 = null;
                if (this.BackupDataSetBeforeUpdate)
                {
                    dataSet1 = new DataSet();
                    dataSet1.Merge(dataSet);
                }
                try
                {
                    try
                    {
                        if (this.UpdateOrder != TableAdapterManager.UpdateOrderOption.UpdateInsertDelete)
                        {
                            num1 += this.UpdateInsertedRows(dataSet, dataRows1);
                            num1 += this.UpdateUpdatedRows(dataSet, dataRows, dataRows1);
                        }
                        else
                        {
                            num1 += this.UpdateUpdatedRows(dataSet, dataRows, dataRows1);
                            num1 += this.UpdateInsertedRows(dataSet, dataRows1);
                        }
                        num1 += this.UpdateDeletedRows(dataSet, dataRows);
                        dbTransaction.Commit();
                        if (0 < dataRows1.Count)
                        {
                            dataRowArray = new DataRow[dataRows1.Count];
                            dataRows1.CopyTo(dataRowArray);
                            for (i = 0; i < (int)dataRowArray.Length; i++)
                            {
                                dataRow = dataRowArray[i];
                                dataRow.AcceptChanges();
                            }
                        }
                        if (0 < dataRows.Count)
                        {
                            dataRowArray = new DataRow[dataRows.Count];
                            dataRows.CopyTo(dataRowArray);
                            for (i = 0; i < (int)dataRowArray.Length; i++)
                            {
                                dataRow = dataRowArray[i];
                                dataRow.AcceptChanges();
                            }
                        }
                    }
                    catch (Exception exception1)
                    {
                        Exception exception = exception1;
                        dbTransaction.Rollback();
                        if (this.BackupDataSetBeforeUpdate)
                        {
                            Debug.Assert(dataSet1 != null);
                            dataSet.Clear();
                            dataSet.Merge(dataSet1);
                        }
                        else if (0 < dataRows1.Count)
                        {
                            dataRowArray = new DataRow[dataRows1.Count];
                            dataRows1.CopyTo(dataRowArray);
                            for (i = 0; i < (int)dataRowArray.Length; i++)
                            {
                                dataRow = dataRowArray[i];
                                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 (i = 0; i < (int)dataAdapterArray.Length; i++)
                        {
                            dataAdapterArray[i].AcceptChangesDuringUpdate = true;
                        }
                    }
                }
                num = num1;
            }
            else
            {
                num = 0;
            }
            return(num);
        }