private int UpdateInsertedRows(WizLogisticsDataSet dataSet, List <DataRow> allAddedRows) { return(0); }
private int UpdateUpdatedRows(WizLogisticsDataSet dataSet, List <DataRow> allChangedRows, List <DataRow> allAddedRows) { return(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); }