示例#1
0
        public DataSource(string name)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }

            disposed = false;

            _name     = name;
            _type     = DataSourceType.Unknown;
            _provider = null;
            _trans    = new DataTransaction(this);
            _locker   = new VersionLocker();
            _pscount  = 0;

            ConnectionStringSettings settings = System.Configuration.ConfigurationManager.ConnectionStrings[_name];

            if (settings == null)
            {
                throw new SettingsPropertyNotFoundException(string.Concat("配置文件中不存在名为“", _name, "”的数据库连接字符串"));
            }
            DbProviderFactory factory = DbProviderFactories.GetFactory(settings.ProviderName);

            _conn = factory.CreateConnection();
            _conn.ConnectionString = settings.ConnectionString;
            _conn.Open();

            lock (_locker.Locker)
                _locker.Increment();
        }
示例#2
0
        public DataSource(DataSource ds)
        {
            if (ds == null)
            {
                throw new ArgumentNullException("ds");
            }

            disposed = false;

            _name     = ds._name;
            _type     = ds._type;
            _provider = ds._provider;
            _trans    = ds._trans;
            _locker   = ds._locker;
            _pscount  = ds.PsCount;

            _conn = ds._conn;

            lock (_locker.Locker)
                _locker.Increment();
        }
示例#3
0
 public DataTransaction(DataSource ds)
 {
     _ds    = ds;
     trans  = null;
     locker = new VersionLocker();
 }