Merge pull request #960 from ermshiperete/ShowHelp
[mono.git] / mcs / class / System.Data / System.Data.Common / DataColumnMapping.cs
index 974e1fc43a28bc3fcc5760e9e74070b7f6db0a2f..c5a68d01057df7c3ebd44bca2983491c4c5b3d1f 100644 (file)
@@ -36,7 +36,11 @@ using System.ComponentModel;
 using System.Data;
 
 namespace System.Data.Common {
+#if NET_2_0
+       [TypeConverterAttribute ("System.Data.Common.DataColumnMapping+DataColumnMappingConverter, " + Consts.AssemblySystem_Data)]
+#else
        [TypeConverterAttribute (typeof (DataColumnMappingConverter))]
+#endif
        public sealed class DataColumnMapping : MarshalByRefObject, IColumnMapping, ICloneable
        {
                #region Fields
@@ -64,7 +68,7 @@ namespace System.Data.Common {
 
                #region Properties
 
-#if !NET_2_0
+#if ONLY_1_1
                [DataSysDescription ("DataColumn.ColumnName")]
 #endif
                [DefaultValue ("")]
@@ -99,11 +103,16 @@ namespace System.Data.Common {
                }
 
 #if NET_2_0
-               [MonoTODO]
                [EditorBrowsable (EditorBrowsableState.Advanced)]
                public static DataColumn GetDataColumnBySchemaAction (string sourceColumn, string dataSetColumn, DataTable dataTable, Type dataType, MissingSchemaAction schemaAction)
                {
-                       throw new NotImplementedException ();
+                       if (dataTable.Columns.Contains (dataSetColumn))
+                               return dataTable.Columns [dataSetColumn];
+                       if (schemaAction == MissingSchemaAction.Ignore)
+                               return null;
+                       if (schemaAction == MissingSchemaAction.Error)
+                               throw new InvalidOperationException (String.Format ("Missing the DataColumn '{0}' in the DataTable '{1}' for the SourceColumn '{2}'", dataSetColumn, dataTable.TableName, sourceColumn));
+                       return new DataColumn (dataSetColumn, dataType);
                }
 #endif