Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / System / data / design / DesignTableCollection.cs / 1 / DesignTableCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All Rights Reserved. // Information Contained Herein is Proprietary and Confidential. // //----------------------------------------------------------------------------- namespace System.Data.Design{ using System; using System.Collections; using System.Data; using System.Diagnostics; ////// internal class DesignTableCollection : DataSourceCollectionBase { private DesignDataSource dataSource; public DesignTableCollection(DesignDataSource dataSource) : base(dataSource) { this.dataSource = dataSource; } private DataSet DataSet{ get{ if (dataSource != null){ return dataSource.DataSet; } return null; } } protected override Type ItemType { get { return typeof(DesignTable); } } protected override INameService NameService { get { return DataSetNameService.DefaultInstance; } } ////// internal DesignTable this[string name] { get { return (DesignTable)FindObject(name); } } ////// internal DesignTable this[DataTable dataTable] { get { foreach (DesignTable designTable in this) { if (designTable.DataTable == dataTable) { return designTable; } } return null; } } ////// Will throw if name is invalid or a dup /// Add the DataTable to the dataTable if not added yet /// public void Add(DesignTable designTable){ // List.Add(designTable); } public bool Contains( DesignTable table ) { return List.Contains( table ); } public int IndexOf( DesignTable table ) { return List.IndexOf( table ); } public void Remove( DesignTable table ) { List.Remove( table ); } ////// Note: this function need to call base first /// to ensure the undo model work! /// protected override void OnInsert( int index, object value ) { base.OnInsert(index, value); DesignTable designTable = (DesignTable)value; if (designTable.Name == null || designTable.Name.Length == 0) { designTable.Name = CreateUniqueName(designTable); } NameService.ValidateUniqueName(this, designTable.Name); if( (this.dataSource != null) && (designTable.Owner == this.dataSource) ) { Debug.Fail( "Table already belongs to this DataSource" ); return; // no-op } if( (this.dataSource != null) && (designTable.Owner != null) ) { throw new InternalException( VSDExceptions.DataSource.TABLE_BELONGS_TO_OTHER_DATA_SOURCE_MSG, VSDExceptions.DataSource.TABLE_BELONGS_TO_OTHER_DATA_SOURCE_CODE ); } DataSet dataSet = DataSet; if ((dataSet != null) && (!dataSet.Tables.Contains(designTable.DataTable.TableName))) { Debug.Assert( this.dataSource != null, "If we were able to get the DataSet we should have a design time data source as well" ); dataSet.Tables.Add(designTable.DataTable); } designTable.Owner = this.dataSource; } ////// Remove the DataTable in the dataTable if not removed yet /// Note: this function need to call base first /// to ensure the undo model work! /// protected override void OnRemove( int index, object value ) { base.OnRemove(index, value); DesignTable designTable = (DesignTable)value; DataSet dataSet = DataSet; if (dataSet != null && designTable.DataTable != null && dataSet.Tables.Contains(designTable.DataTable.TableName)){ dataSet.Tables.Remove(designTable.DataTable); } designTable.Owner = null; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SelectionEditor.cs
- FtpRequestCacheValidator.cs
- ButtonColumn.cs
- FileLoadException.cs
- ShaderRenderModeValidation.cs
- DPTypeDescriptorContext.cs
- TextEmbeddedObject.cs
- CodeMemberField.cs
- SamlAttribute.cs
- QilUnary.cs
- RawStylusInput.cs
- LinearQuaternionKeyFrame.cs
- OrthographicCamera.cs
- InkCanvas.cs
- PointF.cs
- ToolStripOverflow.cs
- DivideByZeroException.cs
- StandardOleMarshalObject.cs
- SubMenuStyle.cs
- XmlSchemaSimpleTypeRestriction.cs
- GridItemPattern.cs
- OperationInvokerBehavior.cs
- BmpBitmapEncoder.cs
- Wildcard.cs
- Trustee.cs
- Pair.cs
- InfoCardTrace.cs
- Utils.cs
- XmlChildNodes.cs
- ContextDataSourceContextData.cs
- MessageBuffer.cs
- SafeHandle.cs
- HostedTcpTransportManager.cs
- InternalEnumValidatorAttribute.cs
- UiaCoreTypesApi.cs
- QilName.cs
- WindowsRichEditRange.cs
- BorderGapMaskConverter.cs
- ResXFileRef.cs
- DeviceFiltersSection.cs
- AssociativeAggregationOperator.cs
- Setter.cs
- SafeLibraryHandle.cs
- ComponentChangingEvent.cs
- AssemblyHash.cs
- NameSpaceEvent.cs
- Cursors.cs
- MobileComponentEditorPage.cs
- EnlistmentTraceIdentifier.cs
- ObjectReferenceStack.cs
- DataSourceDescriptorCollection.cs
- MenuItemBinding.cs
- WindowsBrush.cs
- UnwrappedTypesXmlSerializerManager.cs
- ObjectQuery.cs
- LinqToSqlWrapper.cs
- Converter.cs
- CompareValidator.cs
- DataServiceRequestException.cs
- Permission.cs
- RoleManagerModule.cs
- UnmanagedMemoryStreamWrapper.cs
- WebPartConnectionCollection.cs
- MachineKeySection.cs
- ColumnClickEvent.cs
- XmlSchemaObject.cs
- DependencyPropertyDescriptor.cs
- HyperLink.cs
- RayHitTestParameters.cs
- SpeechRecognizer.cs
- WebBrowserPermission.cs
- SystemEvents.cs
- StyleConverter.cs
- DataGridLinkButton.cs
- PathSegmentCollection.cs
- StorageBasedPackageProperties.cs
- SectionXmlInfo.cs
- MergablePropertyAttribute.cs
- StrongNameMembershipCondition.cs
- LogSwitch.cs
- XamlPoint3DCollectionSerializer.cs
- AudioFormatConverter.cs
- PersistenceTypeAttribute.cs
- ColumnWidthChangingEvent.cs
- PrimitiveXmlSerializers.cs
- NativeCppClassAttribute.cs
- FieldBuilder.cs
- SpecialTypeDataContract.cs
- TextTreeRootNode.cs
- InstancePersistenceCommand.cs
- ProxyFragment.cs
- ApplicationDirectory.cs
- EntityClassGenerator.cs
- ForeignConstraint.cs
- DecimalFormatter.cs
- PersonalizationAdministration.cs
- DataContract.cs
- MethodResolver.cs
- MinMaxParagraphWidth.cs
- InputBuffer.cs