[EditorBrowsableAttribute(EditorBrowsableState.Advanced)] // MDAC 69508
static public DataColumnMapping GetColumnMappingBySchemaAction(DataColumnMappingCollection columnMappings, string sourceColumn, MissingMappingAction mappingAction)
{
if (null != columnMappings)
{
int index = columnMappings.IndexOf(sourceColumn);
if (-1 != index)
{
#if DEBUG
if (AdapterSwitches.DataSchema.TraceInfo)
{
Debug.WriteLine("mapping match on SourceColumn \"" + sourceColumn + "\"");
}
#endif
return(columnMappings.items[index]);
}
}
if (ADP.IsEmpty(sourceColumn))
{
throw ADP.InvalidSourceColumn("sourceColumn");
}
switch (mappingAction)
{
case MissingMappingAction.Passthrough:
#if DEBUG
if (AdapterSwitches.DataSchema.TraceInfo)
{
Debug.WriteLine("mapping passthrough of SourceColumn \"" + sourceColumn + "\"");
}
#endif
return(new DataColumnMapping(sourceColumn, sourceColumn));
case MissingMappingAction.Ignore:
#if DEBUG
if (AdapterSwitches.DataSchema.TraceWarning)
{
Debug.WriteLine("mapping filter of SourceColumn \"" + sourceColumn + "\"");
}
#endif
return(null);
case MissingMappingAction.Error:
#if DEBUG
if (AdapterSwitches.DataSchema.TraceError)
{
Debug.WriteLine("mapping error on SourceColumn \"" + sourceColumn + "\"");
}
#endif
throw ADP.MissingColumnMapping(sourceColumn);
}
throw ADP.InvalidMissingMappingAction(mappingAction);
}