DBConnection.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / Common / DBConnection.cs / 1305376 / DBConnection.cs

                            //------------------------------------------------------------------------------ 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
// [....]
// [....] 
//----------------------------------------------------------------------------- 

namespace System.Data.Common { 

    using System;
    using System.ComponentModel;
    using System.Data; 

    public abstract class DbConnection : Component, IDbConnection { // V1.2.3300 
 
        private StateChangeEventHandler _stateChangeEventHandler;
 
        protected DbConnection() : base() {
        }

        [ 
        DefaultValue(""),
#pragma warning disable 618 // ignore obsolete warning about RecommendedAsConfigurable to use SettingsBindableAttribute 
        RecommendedAsConfigurable(true), 
#pragma warning restore 618
        SettingsBindableAttribute(true), 
        RefreshProperties(RefreshProperties.All),
        ResCategoryAttribute(Res.DataCategory_Data),
        ]
        abstract public string ConnectionString { 
            get;
            set; 
        } 

        [ 
        ResCategoryAttribute(Res.DataCategory_Data),
        ]
        virtual public int ConnectionTimeout {
            get { 
                return ADP.DefaultConnectionTimeout;
            } 
        } 

        [ 
        ResCategoryAttribute(Res.DataCategory_Data),
        ]
        abstract public string Database {
            get; 
        }
 
        [ 
        ResCategoryAttribute(Res.DataCategory_Data),
        ] 
        abstract public string DataSource {
            // NOTE: if you plan on allowing the data source to be changed, you
            //       should implement a ChangeDataSource method, in keeping with
            //       the ChangeDatabase method paradigm. 
            get;
        } 
 
        /// 
        /// The associated provider factory for derived class. 
        /// 
        virtual protected DbProviderFactory DbProviderFactory {
            get {
                return null; 
            }
        } 
 
        internal DbProviderFactory ProviderFactory {
            get { 
                return DbProviderFactory;
            }
        }
 
        [
        Browsable(false), 
        ] 
        abstract public string ServerVersion {
            get; 
        }

        [
        Browsable(false), 
        ResDescriptionAttribute(Res.DbConnection_State),
        ] 
        abstract public ConnectionState State { 
            get;
        } 

        [
        ResCategoryAttribute(Res.DataCategory_StateChange),
        ResDescriptionAttribute(Res.DbConnection_StateChange), 
        ]
        virtual public event StateChangeEventHandler StateChange { 
            add { 
                _stateChangeEventHandler += value;
            } 
            remove {
                _stateChangeEventHandler -= value;
            }
        } 

        abstract protected DbTransaction BeginDbTransaction(IsolationLevel isolationLevel); 
 
        public DbTransaction BeginTransaction() {
            return BeginDbTransaction(IsolationLevel.Unspecified); 
        }

        public DbTransaction BeginTransaction(IsolationLevel isolationLevel) {
            return BeginDbTransaction(isolationLevel); 
        }
 
        IDbTransaction IDbConnection.BeginTransaction() { 
            return BeginDbTransaction(IsolationLevel.Unspecified);
        } 

        IDbTransaction IDbConnection.BeginTransaction(IsolationLevel isolationLevel) {
            return BeginDbTransaction(isolationLevel);
        } 

        abstract public void Close(); 
 
        abstract public void ChangeDatabase(string databaseName);
 
        public DbCommand CreateCommand() {
            return CreateDbCommand();
        }
 
        IDbCommand IDbConnection.CreateCommand() {
            return CreateDbCommand(); 
        } 

        abstract protected DbCommand CreateDbCommand(); 

        virtual public void EnlistTransaction(System.Transactions.Transaction transaction) {
            // NOTE: This is virtual because not all providers may choose to support
            //       distributed transactions. 
            throw ADP.NotSupported();
        } 
 
        // these need to be here so that GetSchema is visible when programming to a dbConnection object.
        // they are overridden by the real implementations in DbConnectionBase 
        virtual public  DataTable GetSchema() {
            throw ADP.NotSupported();
        }
 
        virtual public DataTable GetSchema(string collectionName) {
            throw ADP.NotSupported(); 
        } 

        virtual public DataTable GetSchema(string collectionName, string[] restrictionValues   ) { 
            throw ADP.NotSupported();
        }

        protected virtual void OnStateChange(StateChangeEventArgs stateChange) { 
            StateChangeEventHandler handler = _stateChangeEventHandler;
            if (null != handler) { 
                handler(this, stateChange); 
            }
        } 

        abstract public void Open();
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK