static internal DataColumn CreateDataColumnBySchemaAction(string sourceColumn, string dataSetColumn, DataTable dataTable, Type dataType, MissingSchemaAction schemaAction) { Debug.Assert(dataTable != null, "Should not call with a null DataTable"); if (ADP.IsEmpty(dataSetColumn)) { return(null); } switch (schemaAction) { case MissingSchemaAction.Add: case MissingSchemaAction.AddWithKey: #if DEBUG if (AdapterSwitches.DataSchema.TraceInfo) { Debug.WriteLine("schema add of DataColumn \"" + dataSetColumn + "\" <" + Convert.ToString(dataType, CultureInfo.InvariantCulture) + ">"); } #endif return(new DataColumn(dataSetColumn, dataType)); case MissingSchemaAction.Ignore: #if DEBUG if (AdapterSwitches.DataSchema.TraceWarning) { Debug.WriteLine("schema filter of DataColumn \"" + dataSetColumn + "\" <" + Convert.ToString(dataType, CultureInfo.InvariantCulture) + ">"); } #endif return(null); case MissingSchemaAction.Error: #if DEBUG if (AdapterSwitches.DataSchema.TraceError) { Debug.WriteLine("schema error on DataColumn \"" + dataSetColumn + "\" <" + Convert.ToString(dataType, CultureInfo.InvariantCulture) + ">"); } #endif throw ADP.ColumnSchemaMissing(dataSetColumn, dataTable.TableName, sourceColumn); } throw ADP.InvalidMissingSchemaAction(schemaAction); }
public static DataColumn GetDataColumnBySchemaAction(string sourceColumn, string dataSetColumn, DataTable dataTable, Type dataType, MissingSchemaAction schemaAction) { if (dataTable == null) { throw ADP.ArgumentNull("dataTable"); } if (ADP.IsEmpty(dataSetColumn)) { return(null); } DataColumnCollection columns = dataTable.Columns; int index = columns.IndexOf(dataSetColumn); if ((0 <= index) && (index < columns.Count)) { DataColumn column = columns[index]; if (!ADP.IsEmpty(column.Expression)) { throw ADP.ColumnSchemaExpression(sourceColumn, dataSetColumn); } if ((null != dataType) && (dataType.IsArray != column.DataType.IsArray)) { throw ADP.ColumnSchemaMismatch(sourceColumn, dataType, column); } return(column); } switch (schemaAction) { case MissingSchemaAction.Add: case MissingSchemaAction.AddWithKey: return(new DataColumn(dataSetColumn, dataType)); case MissingSchemaAction.Ignore: return(null); case MissingSchemaAction.Error: throw ADP.ColumnSchemaMissing(dataSetColumn, dataTable.TableName, sourceColumn); } throw ADP.InvalidMissingSchemaAction(schemaAction); }
internal static DataColumn CreateDataColumnBySchemaAction(string sourceColumn, string dataSetColumn, DataTable dataTable, Type dataType, MissingSchemaAction schemaAction) { Debug.Assert(dataTable != null, "Should not call with a null DataTable"); if (string.IsNullOrEmpty(dataSetColumn)) { return(null); } switch (schemaAction) { case MissingSchemaAction.Add: case MissingSchemaAction.AddWithKey: return(new DataColumn(dataSetColumn, dataType)); case MissingSchemaAction.Ignore: return(null); case MissingSchemaAction.Error: throw ADP.ColumnSchemaMissing(dataSetColumn, dataTable.TableName, sourceColumn); } throw ADP.InvalidMissingSchemaAction(schemaAction); }
internal static DataColumn?CreateDataColumnBySchemaAction(string?sourceColumn, string?dataSetColumn, DataTable dataTable, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicProperties | DynamicallyAccessedMemberTypes.PublicFields)] Type?dataType, MissingSchemaAction schemaAction) { Debug.Assert(dataTable != null, "Should not call with a null DataTable"); if (string.IsNullOrEmpty(dataSetColumn)) { return(null); } switch (schemaAction) { case MissingSchemaAction.Add: case MissingSchemaAction.AddWithKey: return(new DataColumn(dataSetColumn, dataType !)); case MissingSchemaAction.Ignore: return(null); case MissingSchemaAction.Error: throw ADP.ColumnSchemaMissing(dataSetColumn, dataTable.TableName, sourceColumn); } throw ADP.InvalidMissingSchemaAction(schemaAction); }
[EditorBrowsableAttribute(EditorBrowsableState.Advanced)] // MDAC 69508 public DataColumn GetDataColumnBySchemaAction(DataTable dataTable, Type dataType, MissingSchemaAction schemaAction) { if (null == dataTable) { throw ADP.NullDataTable("dataTable"); } string dataSetColumn = DataSetColumn; if (ADP.IsEmpty(dataSetColumn)) { #if DEBUG if (AdapterSwitches.DataSchema.TraceWarning) { Debug.WriteLine("explicit filtering of SourceColumn \"" + SourceColumn + "\""); } #endif return(null); } DataColumnCollection columns = dataTable.Columns; Debug.Assert(null != columns, "GetDataColumnBySchemaAction: unexpected null DataColumnCollection"); int index = columns.IndexOf(dataSetColumn); if ((0 <= index) && (index < columns.Count)) { DataColumn dataColumn = columns[index]; Debug.Assert(null != dataColumn, "GetDataColumnBySchemaAction: unexpected null dataColumn"); if (!ADP.IsEmpty(dataColumn.Expression)) { #if DEBUG if (AdapterSwitches.DataSchema.TraceError) { Debug.WriteLine("schema mismatch on DataColumn \"" + dataSetColumn + "\" which is a computed column"); } #endif throw ADP.ColumnSchemaExpression(SourceColumn, dataSetColumn); } if ((null == dataType) || (dataType.IsArray == dataColumn.DataType.IsArray)) { #if DEBUG if (AdapterSwitches.DataSchema.TraceInfo) { Debug.WriteLine("schema match on DataColumn \"" + dataSetColumn + "\""); } #endif return(dataColumn); } #if DEBUG if (AdapterSwitches.DataSchema.TraceWarning) { Debug.WriteLine("schema mismatch on DataColumn \"" + dataSetColumn + "\" " + dataType.Name + " != " + dataColumn.DataType.Name); } #endif throw ADP.ColumnSchemaMismatch(SourceColumn, dataType, dataColumn); } switch (schemaAction) { case MissingSchemaAction.Add: case MissingSchemaAction.AddWithKey: #if DEBUG if (AdapterSwitches.DataSchema.TraceInfo) { Debug.WriteLine("schema add of DataColumn \"" + dataSetColumn + "\" <" + Convert.ToString(dataType) + ">"); } #endif return(new DataColumn(dataSetColumn, dataType)); case MissingSchemaAction.Ignore: #if DEBUG if (AdapterSwitches.DataSchema.TraceWarning) { Debug.WriteLine("schema filter of DataColumn \"" + dataSetColumn + "\" <" + Convert.ToString(dataType) + ">"); } #endif return(null); case MissingSchemaAction.Error: #if DEBUG if (AdapterSwitches.DataSchema.TraceError) { Debug.WriteLine("schema error on DataColumn \"" + dataSetColumn + "\" <" + Convert.ToString(dataType) + ">"); } #endif throw ADP.ColumnSchemaMissing(dataSetColumn, dataTable.TableName, SourceColumn); } throw ADP.InvalidSchemaAction((int)schemaAction); }