Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Data / System / Data / SqlClient / SqlReferenceCollection.cs / 1 / SqlReferenceCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System; using System.Data; using System.Data.Common; using System.Diagnostics; using System.Data.ProviderBase; namespace System.Data.SqlClient { sealed internal class SqlReferenceCollection : DbReferenceCollection { internal const int DataReaderTag = 1; private int _dataReaderCount; internal bool MayHaveDataReader { get { return (0 != _dataReaderCount); } } override public void Add(object value, int tag) { Debug.Assert(DataReaderTag == tag, "unexpected tag?"); Debug.Assert(value is SqlDataReader, "tag doesn't match object type: SqlDataReader"); _dataReaderCount++; base.AddItem(value, tag); } internal void Deactivate() { if (MayHaveDataReader) { base.Notify(0); _dataReaderCount = 0; } Purge(); } internal SqlDataReader FindLiveReader(SqlCommand command) { // if null == command, will find first live datareader // else will find live datareader assocated with the command if (MayHaveDataReader) { foreach (SqlDataReader dataReader in Filter(DataReaderTag)) { if ((null != dataReader) && !dataReader.IsClosed && ((null == command) || (command == dataReader.Command))) { return dataReader; } } } return null; } override protected bool NotifyItem(int message, int tag, object value) { Debug.Assert(0 == message, "unexpected message?"); Debug.Assert(DataReaderTag == tag, "unexpected tag?"); SqlDataReader rdr = (SqlDataReader)value; if (!rdr.IsClosed) { rdr.CloseReaderFromConnection (); } return false; // remove it from the collection } override public void Remove(object value) { Debug.Assert(value is SqlDataReader, "SqlReferenceCollection.Remove expected a SqlDataReader"); _dataReaderCount--; base.RemoveItem(value); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System; using System.Data; using System.Data.Common; using System.Diagnostics; using System.Data.ProviderBase; namespace System.Data.SqlClient { sealed internal class SqlReferenceCollection : DbReferenceCollection { internal const int DataReaderTag = 1; private int _dataReaderCount; internal bool MayHaveDataReader { get { return (0 != _dataReaderCount); } } override public void Add(object value, int tag) { Debug.Assert(DataReaderTag == tag, "unexpected tag?"); Debug.Assert(value is SqlDataReader, "tag doesn't match object type: SqlDataReader"); _dataReaderCount++; base.AddItem(value, tag); } internal void Deactivate() { if (MayHaveDataReader) { base.Notify(0); _dataReaderCount = 0; } Purge(); } internal SqlDataReader FindLiveReader(SqlCommand command) { // if null == command, will find first live datareader // else will find live datareader assocated with the command if (MayHaveDataReader) { foreach (SqlDataReader dataReader in Filter(DataReaderTag)) { if ((null != dataReader) && !dataReader.IsClosed && ((null == command) || (command == dataReader.Command))) { return dataReader; } } } return null; } override protected bool NotifyItem(int message, int tag, object value) { Debug.Assert(0 == message, "unexpected message?"); Debug.Assert(DataReaderTag == tag, "unexpected tag?"); SqlDataReader rdr = (SqlDataReader)value; if (!rdr.IsClosed) { rdr.CloseReaderFromConnection (); } return false; // remove it from the collection } override public void Remove(object value) { Debug.Assert(value is SqlDataReader, "SqlReferenceCollection.Remove expected a SqlDataReader"); _dataReaderCount--; base.RemoveItem(value); } } } // 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
- SqlStatistics.cs
- DataGridViewRowEventArgs.cs
- MatrixTransform3D.cs
- QueryStringHandler.cs
- ReferenceEqualityComparer.cs
- HideDisabledControlAdapter.cs
- IdentifierCollection.cs
- DbTransaction.cs
- NumberSubstitution.cs
- SqlRewriteScalarSubqueries.cs
- ModelUIElement3D.cs
- ItemPager.cs
- HttpResponse.cs
- EntityDataSourceSelectedEventArgs.cs
- RectKeyFrameCollection.cs
- cryptoapiTransform.cs
- RelationshipEnd.cs
- WeakEventTable.cs
- CommentEmitter.cs
- Binding.cs
- SamlAuthenticationClaimResource.cs
- DiagnosticsConfiguration.cs
- StaticFileHandler.cs
- IntegrationExceptionEventArgs.cs
- BindableTemplateBuilder.cs
- _ListenerResponseStream.cs
- CompilerTypeWithParams.cs
- TransactionException.cs
- FrugalList.cs
- SkinBuilder.cs
- CollectionViewProxy.cs
- ConnectionStringsExpressionBuilder.cs
- EntityModelSchemaGenerator.cs
- CommonGetThemePartSize.cs
- SystemBrushes.cs
- SimpleBitVector32.cs
- SqlCacheDependencyDatabaseCollection.cs
- ComboBoxHelper.cs
- LinkLabelLinkClickedEvent.cs
- FtpCachePolicyElement.cs
- DataGridColumnFloatingHeader.cs
- EmbeddedMailObjectsCollection.cs
- ErrorProvider.cs
- BaseDataBoundControl.cs
- WebPartZone.cs
- BinaryReader.cs
- PolicyVersionConverter.cs
- EditingMode.cs
- ConvertersCollection.cs
- PropertyValueUIItem.cs
- StatusBarItem.cs
- ServiceHttpHandlerFactory.cs
- XmlElementAttribute.cs
- X509ChainElement.cs
- CommandTreeTypeHelper.cs
- EventListener.cs
- StrongTypingException.cs
- _SpnDictionary.cs
- AspNetHostingPermission.cs
- HashHelper.cs
- LogAppendAsyncResult.cs
- CustomExpression.cs
- DataServiceRequestException.cs
- ToolStripContainer.cs
- ElementNotEnabledException.cs
- VisualBrush.cs
- XmlStreamNodeWriter.cs
- CodeTypeDelegate.cs
- AttributeEmitter.cs
- NamespaceTable.cs
- DocumentPageTextView.cs
- FacetEnabledSchemaElement.cs
- SelectedDatesCollection.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- ColorContext.cs
- Token.cs
- ListControl.cs
- XmlHierarchyData.cs
- BuildProviderCollection.cs
- SystemParameters.cs
- RectangleF.cs
- BamlTreeUpdater.cs
- EventProxy.cs
- PrimitiveXmlSerializers.cs
- Setter.cs
- QilGeneratorEnv.cs
- X509CertificateStore.cs
- CodeArrayCreateExpression.cs
- StorageEntityTypeMapping.cs
- ItemList.cs
- OperationCanceledException.cs
- StreamGeometry.cs
- CTreeGenerator.cs
- XmlReaderDelegator.cs
- ProtectedProviderSettings.cs
- Roles.cs
- CompositeDataBoundControl.cs
- ElementProxy.cs
- EntityClientCacheEntry.cs
- LiteralTextParser.cs