Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Data / System / Data / Common / DataColumnMapping.cs / 1 / DataColumnMapping.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
// [....]
//-----------------------------------------------------------------------------
namespace System.Data.Common {
using System;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Data;
using System.Diagnostics;
using System.Globalization;
using System.Reflection;
[
System.ComponentModel.TypeConverterAttribute(typeof(System.Data.Common.DataColumnMapping.DataColumnMappingConverter))
]
#if WINFSInternalOnly
internal
#else
public
#endif
sealed class DataColumnMapping : MarshalByRefObject, IColumnMapping, ICloneable {
private DataColumnMappingCollection parent;
private string _dataSetColumnName;
private string _sourceColumnName;
public DataColumnMapping() {
}
public DataColumnMapping(string sourceColumn, string dataSetColumn) {
SourceColumn = sourceColumn;
DataSetColumn = dataSetColumn;
}
[
DefaultValue(""),
ResCategoryAttribute(Res.DataCategory_Mapping),
ResDescriptionAttribute(Res.DataColumnMapping_DataSetColumn),
]
public string DataSetColumn {
get {
string dataSetColumnName = _dataSetColumnName;
return ((null != dataSetColumnName) ? dataSetColumnName : ADP.StrEmpty);
}
set {
_dataSetColumnName = value;
}
}
internal DataColumnMappingCollection Parent {
get {
return parent;
}
set {
parent = value;
}
}
[
DefaultValue(""),
ResCategoryAttribute(Res.DataCategory_Mapping),
ResDescriptionAttribute(Res.DataColumnMapping_SourceColumn),
]
public string SourceColumn {
get {
string sourceColumnName = _sourceColumnName;
return ((null != sourceColumnName) ? sourceColumnName : ADP.StrEmpty);
}
set {
if ((null != Parent) && (0 != ADP.SrcCompare(_sourceColumnName, value))) {
Parent.ValidateSourceColumn(-1, value);
}
_sourceColumnName = value;
}
}
object ICloneable.Clone() {
DataColumnMapping clone = new DataColumnMapping(); // MDAC 81448
clone._sourceColumnName = _sourceColumnName;
clone._dataSetColumnName = _dataSetColumnName;
return clone;
}
[ EditorBrowsableAttribute(EditorBrowsableState.Advanced) ] // MDAC 69508
public DataColumn GetDataColumnBySchemaAction(DataTable dataTable, Type dataType, MissingSchemaAction schemaAction) {
return GetDataColumnBySchemaAction(SourceColumn, DataSetColumn, dataTable, dataType, schemaAction);
}
[ EditorBrowsableAttribute(EditorBrowsableState.Advanced) ] // MDAC 69508
static public DataColumn GetDataColumnBySchemaAction(string sourceColumn, string dataSetColumn, DataTable dataTable, Type dataType, MissingSchemaAction schemaAction) {
if (null == dataTable) {
throw ADP.ArgumentNull("dataTable");
}
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, 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 override String ToString() {
return SourceColumn;
}
sealed internal class DataColumnMappingConverter : System.ComponentModel.ExpandableObjectConverter {
// converter classes should have public ctor
public DataColumnMappingConverter() {
}
override public bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) {
if (typeof(InstanceDescriptor) == destinationType) {
return true;
}
return base.CanConvertTo(context, destinationType);
}
override public object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) {
if (null == destinationType) {
throw ADP.ArgumentNull("destinationType");
}
if ((typeof(InstanceDescriptor) == destinationType) && (value is DataColumnMapping)) {
DataColumnMapping mapping = (DataColumnMapping)value;
object[] values = new object[] { mapping.SourceColumn, mapping.DataSetColumn };
Type[] types = new Type[] { typeof(string), typeof(string) };
ConstructorInfo ctor = typeof(DataColumnMapping).GetConstructor(types);
return new InstanceDescriptor(ctor, values);
}
return base.ConvertTo(context, culture, value, destinationType);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
// [....]
//-----------------------------------------------------------------------------
namespace System.Data.Common {
using System;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Data;
using System.Diagnostics;
using System.Globalization;
using System.Reflection;
[
System.ComponentModel.TypeConverterAttribute(typeof(System.Data.Common.DataColumnMapping.DataColumnMappingConverter))
]
#if WINFSInternalOnly
internal
#else
public
#endif
sealed class DataColumnMapping : MarshalByRefObject, IColumnMapping, ICloneable {
private DataColumnMappingCollection parent;
private string _dataSetColumnName;
private string _sourceColumnName;
public DataColumnMapping() {
}
public DataColumnMapping(string sourceColumn, string dataSetColumn) {
SourceColumn = sourceColumn;
DataSetColumn = dataSetColumn;
}
[
DefaultValue(""),
ResCategoryAttribute(Res.DataCategory_Mapping),
ResDescriptionAttribute(Res.DataColumnMapping_DataSetColumn),
]
public string DataSetColumn {
get {
string dataSetColumnName = _dataSetColumnName;
return ((null != dataSetColumnName) ? dataSetColumnName : ADP.StrEmpty);
}
set {
_dataSetColumnName = value;
}
}
internal DataColumnMappingCollection Parent {
get {
return parent;
}
set {
parent = value;
}
}
[
DefaultValue(""),
ResCategoryAttribute(Res.DataCategory_Mapping),
ResDescriptionAttribute(Res.DataColumnMapping_SourceColumn),
]
public string SourceColumn {
get {
string sourceColumnName = _sourceColumnName;
return ((null != sourceColumnName) ? sourceColumnName : ADP.StrEmpty);
}
set {
if ((null != Parent) && (0 != ADP.SrcCompare(_sourceColumnName, value))) {
Parent.ValidateSourceColumn(-1, value);
}
_sourceColumnName = value;
}
}
object ICloneable.Clone() {
DataColumnMapping clone = new DataColumnMapping(); // MDAC 81448
clone._sourceColumnName = _sourceColumnName;
clone._dataSetColumnName = _dataSetColumnName;
return clone;
}
[ EditorBrowsableAttribute(EditorBrowsableState.Advanced) ] // MDAC 69508
public DataColumn GetDataColumnBySchemaAction(DataTable dataTable, Type dataType, MissingSchemaAction schemaAction) {
return GetDataColumnBySchemaAction(SourceColumn, DataSetColumn, dataTable, dataType, schemaAction);
}
[ EditorBrowsableAttribute(EditorBrowsableState.Advanced) ] // MDAC 69508
static public DataColumn GetDataColumnBySchemaAction(string sourceColumn, string dataSetColumn, DataTable dataTable, Type dataType, MissingSchemaAction schemaAction) {
if (null == dataTable) {
throw ADP.ArgumentNull("dataTable");
}
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, 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 override String ToString() {
return SourceColumn;
}
sealed internal class DataColumnMappingConverter : System.ComponentModel.ExpandableObjectConverter {
// converter classes should have public ctor
public DataColumnMappingConverter() {
}
override public bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) {
if (typeof(InstanceDescriptor) == destinationType) {
return true;
}
return base.CanConvertTo(context, destinationType);
}
override public object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) {
if (null == destinationType) {
throw ADP.ArgumentNull("destinationType");
}
if ((typeof(InstanceDescriptor) == destinationType) && (value is DataColumnMapping)) {
DataColumnMapping mapping = (DataColumnMapping)value;
object[] values = new object[] { mapping.SourceColumn, mapping.DataSetColumn };
Type[] types = new Type[] { typeof(string), typeof(string) };
ConstructorInfo ctor = typeof(DataColumnMapping).GetConstructor(types);
return new InstanceDescriptor(ctor, values);
}
return base.ConvertTo(context, culture, value, destinationType);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RecommendedAsConfigurableAttribute.cs
- GenerateScriptTypeAttribute.cs
- SqlProfileProvider.cs
- ConfigXmlText.cs
- PageRequestManager.cs
- _FtpDataStream.cs
- JournalEntry.cs
- UIPermission.cs
- DeleteWorkflowOwnerCommand.cs
- FormsAuthenticationModule.cs
- XmlUtil.cs
- CodeTypeMember.cs
- OrCondition.cs
- LinqDataSourceHelper.cs
- MetadataUtilsSmi.cs
- ReflectionUtil.cs
- OleDbTransaction.cs
- PageThemeBuildProvider.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- StringDictionary.cs
- TreeNodeClickEventArgs.cs
- QuinticEase.cs
- AutoSizeComboBox.cs
- GlyphsSerializer.cs
- CheckBoxList.cs
- TransactedBatchingElement.cs
- Style.cs
- ReadOnlyHierarchicalDataSourceView.cs
- BitmapFrame.cs
- AssertFilter.cs
- SvcMapFile.cs
- ToolStripCustomTypeDescriptor.cs
- FrameworkTextComposition.cs
- RelationshipEnd.cs
- SqlCachedBuffer.cs
- AutomationEventArgs.cs
- SetterBase.cs
- NetworkAddressChange.cs
- TextParagraph.cs
- Quad.cs
- XmlNodeList.cs
- FeatureSupport.cs
- SQlBooleanStorage.cs
- TreeBuilderBamlTranslator.cs
- GraphicsContainer.cs
- SmtpFailedRecipientsException.cs
- OnOperation.cs
- QuerySelectOp.cs
- DBParameter.cs
- CookieProtection.cs
- HashCodeCombiner.cs
- DES.cs
- TemplatedAdorner.cs
- CultureInfoConverter.cs
- WindowsScrollBarBits.cs
- EventHandlersStore.cs
- VideoDrawing.cs
- QuestionEventArgs.cs
- HtmlInputButton.cs
- CheckBoxBaseAdapter.cs
- MethodBuilder.cs
- TogglePattern.cs
- Exceptions.cs
- ObservableDictionary.cs
- GridItemCollection.cs
- MergeLocalizationDirectives.cs
- SafeRightsManagementSessionHandle.cs
- _BasicClient.cs
- ConfigurationSettings.cs
- ObjectPersistData.cs
- Select.cs
- InheritedPropertyChangedEventArgs.cs
- SqlBuilder.cs
- MessageQueuePermission.cs
- BridgeDataRecord.cs
- BindUriHelper.cs
- DbDeleteCommandTree.cs
- RuleSettingsCollection.cs
- _ConnectStream.cs
- UIElementIsland.cs
- Mapping.cs
- DoubleAnimationBase.cs
- SelectionManager.cs
- DisplayNameAttribute.cs
- ExtensionWindowResizeGrip.cs
- RequestCachePolicy.cs
- COM2Properties.cs
- designeractionlistschangedeventargs.cs
- ToolboxBitmapAttribute.cs
- ApplyTemplatesAction.cs
- InstanceContextManager.cs
- TypeNameConverter.cs
- FixedSOMPage.cs
- OpCopier.cs
- TableFieldsEditor.cs
- panel.cs
- Parameter.cs
- COM2IDispatchConverter.cs
- StdValidatorsAndConverters.cs
- Bits.cs