예제 #1
0
 public DbAccessor(DbProviderFactory dbProviderFactory, string connectionString, DbProviderName dbProviderName)
 {
     IsSingleton        = false;
     _dbProviderFactory = dbProviderFactory;
     _connectionString  = connectionString;
     _dbProviderName    = dbProviderName;
 }
예제 #2
0
        private DbFactory(string name, string connectionString, DbProviderName providerName)
        {
            _name             = name;
            _connectionString = connectionString;
            _providerName     = providerName;
            string providerInvariantName = null;

            switch (_providerName)
            {
            case DbProviderName.SqlClient:
                _parameterNamePrefix  = SqlClientParameterNamePrefix;
                providerInvariantName = "System.Data.SqlClient";
                break;

            case DbProviderName.OleDb:
                _parameterNamePrefix  = OleDbParameterNamePrefix;
                providerInvariantName = "System.Data.OleDb";
                break;

            default:
                throw new NotSupportedException(_providerName.ToString());
            }
            if (providerInvariantName == null)
            {
                throw new NotSupportedException(providerName.ToString());
            }
            _providerFactory = DbProviderFactories.GetFactory(providerInvariantName);
        }
예제 #3
0
        private static bool TryConvertTo(string name, out DbProviderName providerName)
        {
            providerName = DbProviderName.OleDb;
            bool succeed = false;

            switch (name)
            {
            case "System.Data.OleDb":
                succeed = true;
                break;

            case "System.Data.SqlClient":
                providerName = DbProviderName.SqlClient;
                succeed      = true;
                break;
            }
            return(succeed);
        }
예제 #4
0
        private string GetProviderName(DbProviderName provider)
        {
            switch (provider)
            {
            case DbProviderName.SqlClient:
                return("System.Data.SqlClient");

            case DbProviderName.OleDb:
                return("System.Data.OleDb");

            case DbProviderName.MySqlClient:
                return("MySql.Data.MySqlClient");

            case DbProviderName.OracleClient:
                return("System.Data.OracleClient");

            default:
                return(null);
            }
        }
예제 #5
0
        public static DbFactory GetFactory(string connectionString, DbProviderName providerName)
        {
            DbFactory factory = null;

            for (int i = 0; i < stored.Length; i++)
            {
                if (stored[i].ConnectionString == connectionString && stored[i].ProviderName == providerName)
                {
                    factory = stored[i];
                    break;
                }
            }
            if (factory == null)
            {
                lock (stored.SyncRoot)
                {
                    int index = stored.Length;
                    Array.Resize <DbFactory>(ref stored, index + 1);
                    stored[index] = factory = new DbFactory(StringHelper.NowDateString, connectionString, providerName);
                }
            }
            return(factory);
        }
예제 #6
0
 public DbHelper(string ConnectionString, DbProviderName provider)
 {
     this.ConnectionString = ConnectionString;
     ProviderName          = GetProviderName(provider);
     CreateFactory();
 }
예제 #7
0
 public static void SetDbAccessorDbProviderName(DbAccessor dba, DbProviderName dbProviderName)
 {
     EvnValRepository.Instance.AddEvnVal(dba.GetHashCode().ToString(), dbProviderName.ToString());
 }
예제 #8
0
 public static void SetDbAccessorDbProviderName(DbAccessor dba, DbProviderName dbProviderName)
 {
     EvnValRepository.Instance.AddEvnVal(dba.GetHashCode().ToString(), dbProviderName.ToString());
 }