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
- ReturnType.cs
- QueueAccessMode.cs
- Stackframe.cs
- TreeWalkHelper.cs
- PageParser.cs
- WebPartZone.cs
- SecurityTokenTypes.cs
- DataGridViewColumnTypeEditor.cs
- OuterGlowBitmapEffect.cs
- ExtenderHelpers.cs
- BitmapEffectrendercontext.cs
- Emitter.cs
- MethodRental.cs
- HttpCapabilitiesSectionHandler.cs
- util.cs
- GenericTypeParameterBuilder.cs
- WinFormsSpinner.cs
- ProcessHostMapPath.cs
- CheckoutException.cs
- UnsafeNativeMethods.cs
- HttpHandlerActionCollection.cs
- RemotingConfiguration.cs
- ProxyElement.cs
- ApplicationDirectoryMembershipCondition.cs
- Window.cs
- RSACryptoServiceProvider.cs
- DataGridViewCellConverter.cs
- TransformCollection.cs
- ActivationArguments.cs
- WebPartConnectionsConnectVerb.cs
- OleDbStruct.cs
- IdnMapping.cs
- ExtractCollection.cs
- ToolBarButton.cs
- Imaging.cs
- ZoneButton.cs
- StateDesigner.Layouts.cs
- MeshGeometry3D.cs
- PriorityChain.cs
- EventLogConfiguration.cs
- EmbeddedObject.cs
- WebPartExportVerb.cs
- FunctionDescription.cs
- ObjectSet.cs
- DataGridItemCollection.cs
- SingleStorage.cs
- peersecuritysettings.cs
- WCFBuildProvider.cs
- WebPartEditorOkVerb.cs
- ItemCheckedEvent.cs
- HtmlSelect.cs
- DBDataPermissionAttribute.cs
- ManagedFilter.cs
- SqlEnums.cs
- WorkflowQueue.cs
- _OverlappedAsyncResult.cs
- DragDrop.cs
- TableHeaderCell.cs
- VirtualPathUtility.cs
- HtmlHistory.cs
- Zone.cs
- SessionStateItemCollection.cs
- QilPatternFactory.cs
- PageContent.cs
- ProxyWebPartConnectionCollection.cs
- OperatingSystem.cs
- StrokeRenderer.cs
- filewebresponse.cs
- TranslateTransform.cs
- Documentation.cs
- WebConfigurationHost.cs
- Permission.cs
- SeekableReadStream.cs
- BulletedList.cs
- RegisteredHiddenField.cs
- DbParameterCollectionHelper.cs
- MimePart.cs
- SerializerWriterEventHandlers.cs
- ResourceProviderFactory.cs
- KeyedHashAlgorithm.cs
- ToolTipAutomationPeer.cs
- QilGeneratorEnv.cs
- DataBoundControlHelper.cs
- DataGridPageChangedEventArgs.cs
- RemoteCryptoSignHashRequest.cs
- DictionaryEntry.cs
- JavaScriptSerializer.cs
- _ShellExpression.cs
- SortDescriptionCollection.cs
- safemediahandle.cs
- Int16KeyFrameCollection.cs
- PathSegment.cs
- Point4DConverter.cs
- ValidationError.cs
- ITreeGenerator.cs
- ElementMarkupObject.cs
- Vertex.cs
- DataGrid.cs
- BinaryReader.cs
- SQLConvert.cs