[ado.net]bugfix:688773 - Assign default value to columns that does not
authorVeerapuram Varadhan <vvaradhan@gmail.com>
Wed, 4 May 2011 21:58:53 +0000 (03:28 +0530)
committerVeerapuram Varadhan <vvaradhan@gmail.com>
Wed, 4 May 2011 21:59:54 +0000 (03:29 +0530)
exist in the row that is being imported.

mcs/class/System.Data/System.Data.Common/ChangeLog
mcs/class/System.Data/System.Data.Common/RecordCache.cs

index c2d0a740d9de5baf4f7a92bef83b1c9f30c4d1f8..db8c2a8848a1d665025387b63b668c43459c94fe 100644 (file)
@@ -1,3 +1,9 @@
+2011-05-05  Veerapuram Varadhan  <v.varadhan@gmail.com>
+
+       ** Fixes 688773
+       * RecordCache.cs (CopyRecord): When copying records, assign default value 
+       for the columns that does not exist in the row being imported.
+
 2010-07-23  Veerapuram Varadhan  <v.varadhan@gmail.com>
 
        ** Fixes #565616 - Based on Patch by Hubert FONGARNAND
index a095f1664580bbf03424f76334e4a0d94bf64f80..f7ce6fbf2a9b8e98cd1f8f5b8b7dabd48c095fbb 100644 (file)
@@ -106,12 +106,13 @@ namespace System.Data.Common
                                recordIndex = NewRecord ();
 
                        try {
-                               foreach (DataColumn fromColumn in fromTable.Columns) {
-                                       DataColumn column = _table.Columns [fromColumn.ColumnName];
-                                       if (column != null)
-                                               column.DataContainer.CopyValue (fromColumn.DataContainer, fromRecordIndex, recordIndex);
+                               foreach (DataColumn toColumn in _table.Columns) {
+                                       DataColumn fromColumn = fromTable.Columns [toColumn.ColumnName];
+                                       if (fromColumn != null)
+                                               toColumn.DataContainer.CopyValue (fromColumn.DataContainer, fromRecordIndex, recordIndex);
+                                       else
+                                               toColumn.DataContainer.CopyValue (_table.DefaultValuesRowIndex, recordIndex);                                   
                                }
-
                                return recordIndex;
                        } catch {
                                if (toRecordIndex == -1)