Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Data / System / Data / ProviderBase / DbConnectionClosed.cs / 1 / 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. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataListAutoFormat.cs
- UIElementIsland.cs
- IndependentAnimationStorage.cs
- DataGridViewRowConverter.cs
- LightweightCodeGenerator.cs
- MembershipPasswordException.cs
- HttpModulesSection.cs
- VectorCollectionValueSerializer.cs
- ObjectDataSourceView.cs
- TagMapInfo.cs
- ScriptDescriptor.cs
- LassoHelper.cs
- Odbc32.cs
- TextBoxView.cs
- AuthenticateEventArgs.cs
- Identity.cs
- EntityContainer.cs
- ReadWriteObjectLock.cs
- RefreshEventArgs.cs
- ApplicationFileParser.cs
- ModifiableIteratorCollection.cs
- ApplicationFileParser.cs
- UncommonField.cs
- Debug.cs
- FlowDocumentReaderAutomationPeer.cs
- ConnectionsZone.cs
- SqlTrackingQuery.cs
- QueryableFilterUserControl.cs
- RegexGroup.cs
- EncryptedPackageFilter.cs
- UpdateManifestForBrowserApplication.cs
- ScriptResourceHandler.cs
- OneOfScalarConst.cs
- ParenthesizePropertyNameAttribute.cs
- MimeWriter.cs
- EntityDataSourceReferenceGroup.cs
- BooleanExpr.cs
- BatchWriter.cs
- FileUpload.cs
- DataGridState.cs
- ComboBox.cs
- SchemaCollectionCompiler.cs
- ContextProperty.cs
- GridViewAutoFormat.cs
- DocumentPageView.cs
- BitmapEditor.cs
- ManagementException.cs
- DetailsViewPageEventArgs.cs
- BeginEvent.cs
- InfoCardRSACryptoProvider.cs
- ScriptDescriptor.cs
- MsdtcClusterUtils.cs
- CodeDomSerializerException.cs
- ComPlusServiceHost.cs
- StreamUpdate.cs
- _FtpControlStream.cs
- SafeProcessHandle.cs
- VectorCollectionValueSerializer.cs
- URL.cs
- TransformationRules.cs
- MethodBody.cs
- FileUtil.cs
- AsymmetricSignatureDeformatter.cs
- XmlComment.cs
- CSharpCodeProvider.cs
- SingleBodyParameterMessageFormatter.cs
- WriteTimeStream.cs
- ThemeDictionaryExtension.cs
- Closure.cs
- JavaScriptObjectDeserializer.cs
- ProxyHelper.cs
- ControlPropertyNameConverter.cs
- NamespaceTable.cs
- PathBox.cs
- WorkflowDataContext.cs
- WebControl.cs
- PersistenceException.cs
- ReadOnlyDataSource.cs
- AssemblyInfo.cs
- WindowsRegion.cs
- HierarchicalDataBoundControlAdapter.cs
- Sequence.cs
- PasswordRecovery.cs
- GenericUriParser.cs
- SmtpDateTime.cs
- Roles.cs
- PictureBox.cs
- FixedSOMFixedBlock.cs
- CompressedStack.cs
- DispatcherHookEventArgs.cs
- Animatable.cs
- TokenizerHelper.cs
- DesignerVerbCollection.cs
- ScrollChrome.cs
- ProcessHostFactoryHelper.cs
- AccessControlList.cs
- SimpleWebHandlerParser.cs
- WaveHeader.cs
- AutomationPatternInfo.cs
- BorderGapMaskConverter.cs