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
- InvalidOleVariantTypeException.cs
- ListDictionaryInternal.cs
- DbConnectionPoolIdentity.cs
- SqlServices.cs
- AttributeCollection.cs
- Wildcard.cs
- TargetPerspective.cs
- DiscoveryServerProtocol.cs
- XpsSerializationException.cs
- DataListItemCollection.cs
- TimeoutValidationAttribute.cs
- MethodCallConverter.cs
- ToolStripPanelCell.cs
- Label.cs
- PrePostDescendentsWalker.cs
- OdbcConnectionOpen.cs
- ThreadAbortException.cs
- ListItemCollection.cs
- Calendar.cs
- ParseNumbers.cs
- TabItemAutomationPeer.cs
- TypeElementCollection.cs
- SizeIndependentAnimationStorage.cs
- EventListener.cs
- StandardCommandToolStripMenuItem.cs
- UserControl.cs
- SchemaNamespaceManager.cs
- SecurityPolicySection.cs
- SerializationInfoEnumerator.cs
- ComContractElementCollection.cs
- DictionaryItemsCollection.cs
- PropertyKey.cs
- ScriptHandlerFactory.cs
- ZipIOExtraFieldElement.cs
- IntPtr.cs
- DependencyObject.cs
- SQLByte.cs
- ApplicationContext.cs
- SecurityIdentifierElementCollection.cs
- PixelShader.cs
- CodePropertyReferenceExpression.cs
- RenamedEventArgs.cs
- DelegatingConfigHost.cs
- BackgroundWorker.cs
- Int64AnimationUsingKeyFrames.cs
- OLEDB_Enum.cs
- SQLByteStorage.cs
- XamlSerializationHelper.cs
- ShaderEffect.cs
- RoleManagerSection.cs
- DocumentReference.cs
- UInt16Converter.cs
- DesignerContextDescriptor.cs
- PrimitiveXmlSerializers.cs
- WhitespaceReader.cs
- CodeFieldReferenceExpression.cs
- AnnotationComponentChooser.cs
- EntityDataSourceView.cs
- FilterElement.cs
- CanonicalXml.cs
- MailAddressParser.cs
- GridViewColumn.cs
- ConversionContext.cs
- Vector3DCollectionValueSerializer.cs
- ItemChangedEventArgs.cs
- GB18030Encoding.cs
- XmlEventCache.cs
- ProtectedConfiguration.cs
- PrintPreviewGraphics.cs
- FormViewPagerRow.cs
- NoClickablePointException.cs
- PkcsMisc.cs
- ReadOnlyPropertyMetadata.cs
- Argument.cs
- TypeBuilderInstantiation.cs
- FixedStringLookup.cs
- DesignerActionTextItem.cs
- DescriptionAttribute.cs
- PrincipalPermission.cs
- ADMembershipProvider.cs
- HttpCookiesSection.cs
- CngKey.cs
- WebConfigurationManager.cs
- BindingCompleteEventArgs.cs
- UIElement.cs
- UnsafeNativeMethods.cs
- SafeCloseHandleCritical.cs
- FontCollection.cs
- TypeBrowserDialog.cs
- ModelTreeEnumerator.cs
- MulticastOption.cs
- TemplatePagerField.cs
- TaskDesigner.cs
- IpcServerChannel.cs
- ApplicationTrust.cs
- DiscoveryClientRequestChannel.cs
- LoaderAllocator.cs
- QfeChecker.cs
- ToolStripRenderEventArgs.cs
- ConnectionManagementElement.cs