Thanks,Bill
In your foreach loop, change the:
partsBO1.Items(mCol.ColumnName) = mCurrentPart.Items(mCol.ColumnName);
to:
partsBO1.CurrentRow[mCol] = mCurrentPart.CurrentRow[mCol.ColumnName];
If you noticed, I used the column reference on the first and the column name on the second... that's because the fastest way to reference a column of a DataRow is by passing the column reference, but since the column belongs to the first BO and not the second, you have to use the name to reference the second one. You could use the name on both, but then the DataRow would just use the name to find the column reference and then use it, so you might as well pass the column reference since you have it.
Sorry...I am a bit confused. A DataRow object doesn't have a CurrentRow property, does it? I'll try using the CurrentRow of the BO to see if that makes a difference.
partsBO1.CurrentRow[mCol] = mCurrentPart[mCol];
I changed just the BO side per your earlier suggestion. It seems to work just fine. I do have the second half looking like this, though:
mCurrentPart[mCol.ColumnName]
I am assuming that ColumnName is the default property to DataColumn object. So leaving it there or removing it won't matter, eh?