public static void Update_ADODB_from_ADO(DataTable inTable, ref ADODB.Recordset adoRs) { // ADODB.Recordset result = adoRs.Clone(ADODB.LockTypeEnum.adLockOptimistic); ADODB.Fields adoFields = adoRs.Fields; System.Data.DataColumnCollection inColumns = inTable.Columns; //Delete adoRs.MoveFirst(); while (!adoRs.EOF) { adoRs.Delete(); adoRs.MoveNext(); } //Add foreach (DataRow dr in inTable.Rows) { adoRs.AddNew(System.Reflection.Missing.Value, System.Reflection.Missing.Value); for (int columnIndex = 0; columnIndex < inColumns.Count; columnIndex++) { adoFields[columnIndex].Value = dr[columnIndex]; } } }
private void UpdateADODBRecordset_from_ADODataTable(DataTable inTable, ref ADODB.Recordset adoRs) { ADODB.Fields adoFields = adoRs.Fields; System.Data.DataColumnCollection inColumns = inTable.Columns; //Delete if (adoRs.RecordCount > 0) { adoRs.MoveFirst(); } while (!adoRs.EOF) { adoRs.Delete(); adoRs.MoveNext(); } //Add foreach (DataRow dr in inTable.Rows) { // Proceso las que no estan borradas if (dr.RowState != DataRowState.Deleted) { adoRs.AddNew(System.Reflection.Missing.Value, System.Reflection.Missing.Value); for (int columnIndex = 0; columnIndex < inColumns.Count; columnIndex++) { adoFields[columnIndex].Value = dr[columnIndex]; } } } }