Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / ProviderBase / DbConnectionClosed.cs / 1305376 / DbConnectionClosed.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data.ProviderBase { using System; using System.ComponentModel; using System.Data; using System.Data.Common; using System.Diagnostics; using System.Globalization; using System.Threading; using SysTx = System.Transactions; abstract internal class DbConnectionClosed : DbConnectionInternal { // Construct an "empty" connection protected DbConnectionClosed(ConnectionState state, bool hidePassword, bool allowSetConnectionString) : base(state, hidePassword, allowSetConnectionString) { } override public string ServerVersion { get { throw ADP.ClosedConnectionError(); } } override protected void Activate(SysTx.Transaction transaction) { throw ADP.ClosedConnectionError(); } override public DbTransaction BeginTransaction(IsolationLevel il) { throw ADP.ClosedConnectionError(); } override public void ChangeDatabase(string database) { throw ADP.ClosedConnectionError(); } internal override void CloseConnection(DbConnection owningObject, DbConnectionFactory connectionFactory) { // not much to do here... } override protected void Deactivate() { throw ADP.ClosedConnectionError(); } override public void EnlistTransaction(SysTx.Transaction transaction) { throw ADP.ClosedConnectionError(); } override protected internal DataTable GetSchema(DbConnectionFactory factory, DbConnectionPoolGroup poolGroup, DbConnection outerConnection, string collectionName, string[] restrictions) { throw ADP.ClosedConnectionError(); } internal override void OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) { // Closed->Connecting: prevent set_ConnectionString during Open if (connectionFactory.SetInnerConnectionFrom(outerConnection, DbConnectionClosedConnecting.SingletonInstance, this)) { DbConnectionInternal openConnection = null; try { connectionFactory.PermissionDemand(outerConnection); openConnection = connectionFactory.GetConnection(outerConnection); } catch { // This should occure for all exceptions, even ADP.UnCatchableExceptions. connectionFactory.SetInnerConnectionTo(outerConnection, this); throw; } if (null == openConnection) { connectionFactory.SetInnerConnectionTo(outerConnection, this); throw ADP.InternalConnectionError(ADP.ConnectionError.GetConnectionReturnsNull); } connectionFactory.SetInnerConnectionEvent(outerConnection, openConnection); } } } abstract internal class DbConnectionBusy : DbConnectionClosed { protected DbConnectionBusy(ConnectionState state) : base(state, true, false) { } internal override void OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) { throw ADP.ConnectionAlreadyOpen(State); } } sealed internal class DbConnectionClosedBusy : DbConnectionBusy { // Closed Connection, Currently Busy - changing connection string internal static readonly DbConnectionInternal SingletonInstance = new DbConnectionClosedBusy(); // singleton object private DbConnectionClosedBusy() : base(ConnectionState.Closed) { } } sealed internal class DbConnectionOpenBusy : DbConnectionBusy { // Open Connection, Currently Busy - closing connection internal static readonly DbConnectionInternal SingletonInstance = new DbConnectionOpenBusy(); // singleton object private DbConnectionOpenBusy() : base(ConnectionState.Open) { } } sealed internal class DbConnectionClosedConnecting : DbConnectionBusy { // Closed Connection, Currently Connecting internal static readonly DbConnectionInternal SingletonInstance = new DbConnectionClosedConnecting(); // singleton object private DbConnectionClosedConnecting() : base(ConnectionState.Connecting) { } } sealed internal class DbConnectionClosedNeverOpened : DbConnectionClosed { // Closed Connection, Has Never Been Opened internal static readonly DbConnectionInternal SingletonInstance = new DbConnectionClosedNeverOpened(); // singleton object private DbConnectionClosedNeverOpened() : base(ConnectionState.Closed, false, true) { } } sealed internal class DbConnectionClosedPreviouslyOpened : DbConnectionClosed { // Closed Connection, Has Previously Been Opened internal static readonly DbConnectionInternal SingletonInstance = new DbConnectionClosedPreviouslyOpened(); // singleton object private DbConnectionClosedPreviouslyOpened() : base(ConnectionState.Closed, true, true) { } } } // 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
- RowSpanVector.cs
- SoapObjectInfo.cs
- XmlSerializerSection.cs
- CookielessHelper.cs
- TextLineBreak.cs
- RtfNavigator.cs
- MembershipAdapter.cs
- CodeNamespaceImportCollection.cs
- WebBrowserPermission.cs
- CorrelationTokenInvalidatedHandler.cs
- ResourceSetExpression.cs
- ComplexObject.cs
- XmlnsCompatibleWithAttribute.cs
- SocketCache.cs
- FreezableOperations.cs
- FontWeightConverter.cs
- EventBindingService.cs
- XmlSignificantWhitespace.cs
- RemoteWebConfigurationHostServer.cs
- SubMenuStyleCollection.cs
- IIS7UserPrincipal.cs
- Simplifier.cs
- ConfigXmlAttribute.cs
- _AutoWebProxyScriptEngine.cs
- PenThreadWorker.cs
- FontStretch.cs
- RegularExpressionValidator.cs
- ToolStripButton.cs
- SqlDataSourceParameterParser.cs
- CodeAttachEventStatement.cs
- FillErrorEventArgs.cs
- SqlUnionizer.cs
- DropShadowBitmapEffect.cs
- GcSettings.cs
- KeyboardNavigation.cs
- UpdatePanelControlTrigger.cs
- SystemIPGlobalProperties.cs
- FormView.cs
- WriterOutput.cs
- DispatcherHooks.cs
- AnnotationResource.cs
- X509Extension.cs
- Compiler.cs
- DataGridViewIntLinkedList.cs
- CodeAttachEventStatement.cs
- CodeTypeReferenceExpression.cs
- ListBindingConverter.cs
- PersistNameAttribute.cs
- WebCodeGenerator.cs
- ThicknessAnimationUsingKeyFrames.cs
- StateWorkerRequest.cs
- Matrix3D.cs
- BuildManagerHost.cs
- WpfSharedXamlSchemaContext.cs
- ContextQuery.cs
- QilStrConcatenator.cs
- CalendarDay.cs
- CodeGroup.cs
- ResourceKey.cs
- ResetableIterator.cs
- BindingList.cs
- XmlSchemaType.cs
- NavigatorOutput.cs
- StorageEntitySetMapping.cs
- ListViewDeletedEventArgs.cs
- BitmapEffectGroup.cs
- ReadOnlyTernaryTree.cs
- DbConnectionInternal.cs
- Stacktrace.cs
- ProcessInputEventArgs.cs
- OperationInfo.cs
- _NativeSSPI.cs
- AsyncCompletedEventArgs.cs
- XPathConvert.cs
- ConfigXmlComment.cs
- ArgumentValidation.cs
- TcpTransportManager.cs
- EventProxy.cs
- DataStreams.cs
- DecimalConverter.cs
- HtmlHead.cs
- RangeBase.cs
- CopyAttributesAction.cs
- FixedSOMPageConstructor.cs
- SqlError.cs
- InputMethodStateTypeInfo.cs
- PeerPresenceInfo.cs
- XmlWrappingReader.cs
- MultitargetUtil.cs
- ToolboxComponentsCreatingEventArgs.cs
- FrameDimension.cs
- ApplicationGesture.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- _LoggingObject.cs
- cryptoapiTransform.cs
- UInt64.cs
- XmlSortKey.cs
- XPathArrayIterator.cs
- SectionRecord.cs
- AlphabeticalEnumConverter.cs