internal void CopyRow(DataTable table, DataRow row)
{
int oldRecord = -1, newRecord = -1;
if (row == null)
return;
if (row.oldRecord != -1) {
oldRecord = table.recordManager.ImportRecord(row.Table, row.oldRecord);
}
if (row.newRecord != -1) {
if (row.newRecord != row.oldRecord) {
newRecord = table.recordManager.ImportRecord(row.Table, row.newRecord);
}
else
newRecord = oldRecord;
}
DataRow targetRow = table.AddRecords(oldRecord, newRecord);
if (row.HasErrors) {
targetRow.RowError = row.RowError;
DataColumn[] cols = row.GetColumnsInError();
for (int i = 0; i < cols.Length; i++) {
DataColumn col = targetRow.Table.Columns[cols[i].ColumnName];
targetRow.SetColumnError(col, row.GetColumnError(cols[i]));
}
}
}