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
- SettingsBase.cs
- StringReader.cs
- SplashScreenNativeMethods.cs
- PropertyGrid.cs
- ColumnMapCopier.cs
- CompilerGlobalScopeAttribute.cs
- Number.cs
- TextDecorationLocationValidation.cs
- Size3D.cs
- PrefixQName.cs
- TrackingRecordPreFilter.cs
- CollectionsUtil.cs
- MD5CryptoServiceProvider.cs
- OdbcParameterCollection.cs
- Tracking.cs
- NumericUpDownAccelerationCollection.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- DataRelationCollection.cs
- TableLayoutStyleCollection.cs
- WeakReference.cs
- SplitterPanel.cs
- SpeakCompletedEventArgs.cs
- OdbcReferenceCollection.cs
- ItemCheckedEvent.cs
- DbProviderFactory.cs
- ADConnectionHelper.cs
- ProfileParameter.cs
- FormatVersion.cs
- SafeCryptContextHandle.cs
- QilReplaceVisitor.cs
- unsafenativemethodsother.cs
- XPathAncestorQuery.cs
- shaperfactory.cs
- DtrList.cs
- GcHandle.cs
- Screen.cs
- PageEventArgs.cs
- SmiTypedGetterSetter.cs
- HtmlTableRow.cs
- UInt32Storage.cs
- ManualWorkflowSchedulerService.cs
- WebBrowserHelper.cs
- PropertyValueChangedEvent.cs
- SqlCacheDependencyDatabase.cs
- EncoderParameter.cs
- SessionParameter.cs
- DataGridCaption.cs
- RsaSecurityToken.cs
- RandomNumberGenerator.cs
- ListGeneralPage.cs
- ConfigurationElement.cs
- ConstantSlot.cs
- TextRangeEditTables.cs
- VersionPair.cs
- EdmRelationshipRoleAttribute.cs
- CryptoApi.cs
- RootNamespaceAttribute.cs
- ExtensionWindow.cs
- PointIndependentAnimationStorage.cs
- CompressedStack.cs
- XmlSerializationWriter.cs
- DataGridTableCollection.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- NotCondition.cs
- Exceptions.cs
- XmlTextReader.cs
- GeneratedContractType.cs
- WorkflowApplicationAbortedException.cs
- Int16Converter.cs
- PrivateFontCollection.cs
- ArrayElementGridEntry.cs
- BufferedWebEventProvider.cs
- GetIndexBinder.cs
- WebConfigurationFileMap.cs
- Baml2006ReaderFrame.cs
- Normalization.cs
- Misc.cs
- AlternationConverter.cs
- RoutedEventArgs.cs
- DataSourceCacheDurationConverter.cs
- AutoFocusStyle.xaml.cs
- DecimalStorage.cs
- QueryResponse.cs
- EditorPartDesigner.cs
- Renderer.cs
- SiteMapDataSource.cs
- StringInfo.cs
- SqlServer2KCompatibilityCheck.cs
- RadialGradientBrush.cs
- MeasureItemEvent.cs
- CookieParameter.cs
- WmlLiteralTextAdapter.cs
- FunctionUpdateCommand.cs
- PcmConverter.cs
- ListChangedEventArgs.cs
- WebPartDeleteVerb.cs
- XmlSchemaSimpleContentExtension.cs
- PropertyGridEditorPart.cs
- ObjectComplexPropertyMapping.cs
- Certificate.cs