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
- VirtualizingStackPanel.cs
- WebPartDisplayModeCollection.cs
- ItemsControlAutomationPeer.cs
- Pair.cs
- CodeSubDirectory.cs
- DetailsViewModeEventArgs.cs
- PathSegmentCollection.cs
- TransactionState.cs
- WebPartUserCapability.cs
- RuleSetBrowserDialog.cs
- XmlTextEncoder.cs
- ProxyWebPart.cs
- SqlDuplicator.cs
- BooleanToVisibilityConverter.cs
- BlurBitmapEffect.cs
- OleDbError.cs
- SslStream.cs
- LocalFileSettingsProvider.cs
- NamespaceCollection.cs
- XmlHierarchicalEnumerable.cs
- WmlLiteralTextAdapter.cs
- AncestorChangedEventArgs.cs
- VisualTarget.cs
- OutOfMemoryException.cs
- OutputChannel.cs
- TextServicesCompartmentEventSink.cs
- RightsManagementEncryptionTransform.cs
- DataGridColumnCollection.cs
- InvalidPrinterException.cs
- DataGridViewCellCancelEventArgs.cs
- HtmlTextViewAdapter.cs
- OracleCommand.cs
- ColumnHeaderConverter.cs
- MutexSecurity.cs
- ActivityExecutorSurrogate.cs
- SimpleApplicationHost.cs
- Clause.cs
- mactripleDES.cs
- InstanceData.cs
- QueryCacheEntry.cs
- MetadataLocation.cs
- HeaderedContentControl.cs
- XmlWrappingReader.cs
- CaseStatementProjectedSlot.cs
- X509CertificateInitiatorClientCredential.cs
- XmlArrayItemAttributes.cs
- MethodCallTranslator.cs
- PageBreakRecord.cs
- objectquery_tresulttype.cs
- SourceSwitch.cs
- ToolBarButton.cs
- AspCompat.cs
- Range.cs
- BlockUIContainer.cs
- SQLStringStorage.cs
- TransactedBatchingElement.cs
- AddInController.cs
- ColorTransformHelper.cs
- ProtectedProviderSettings.cs
- SafePEFileHandle.cs
- RequestCacheEntry.cs
- TextMarkerSource.cs
- Int32Collection.cs
- Unit.cs
- ControlBindingsCollection.cs
- DataSvcMapFileSerializer.cs
- InternalConfigEventArgs.cs
- BrowsableAttribute.cs
- HandledEventArgs.cs
- ContentTextAutomationPeer.cs
- WindowsFormsHost.cs
- ReaderContextStackData.cs
- WebScriptMetadataMessageEncodingBindingElement.cs
- NonParentingControl.cs
- WindowsFormsSynchronizationContext.cs
- OutputCacheModule.cs
- XPathSelectionIterator.cs
- ScalarOps.cs
- GeneralTransformGroup.cs
- AssociationTypeEmitter.cs
- ProgressChangedEventArgs.cs
- followingquery.cs
- HandledMouseEvent.cs
- TypeToken.cs
- CalendarKeyboardHelper.cs
- brushes.cs
- TextBoxRenderer.cs
- shaperfactoryquerycacheentry.cs
- CacheMemory.cs
- SpnEndpointIdentityExtension.cs
- SystemWebCachingSectionGroup.cs
- MarkerProperties.cs
- QilInvokeEarlyBound.cs
- SecurityKeyIdentifierClause.cs
- ICspAsymmetricAlgorithm.cs
- GridViewRowPresenterBase.cs
- XmlNamespaceManager.cs
- Formatter.cs
- HtmlHead.cs
- DictionaryCustomTypeDescriptor.cs