Ejemplo n.º 1
0
 /// <summary>
 /// 获取指定类型的数据库对应的DbProviderFactory
 /// </summary>
 /// <param name="providerType">数据库类型枚举</param>
 /// <returns></returns>
 public static DbProviderFactory GetDbProviderFactory(db_dialect providerType)
 {
     //如果还没有加载,则加载该DbProviderFactory
     if (!providerFactoies.ContainsKey(providerType))
     {
         providerFactoies.Add(providerType, ImportDbProviderFactory(providerType));
     }
     return(providerFactoies[providerType]);
 }
Ejemplo n.º 2
0
            /// <summary>
            /// 加载指定数据库类型的DbProviderFactory
            /// </summary>
            /// <param name="providerType">数据库类型枚举</param>
            /// <returns></returns>
            private static DbProviderFactory ImportDbProviderFactory(db_dialect providerType)
            {
                string            providerName = providerInvariantNames[providerType];
                DbProviderFactory factory      = null;

                try
                {
                    //从全局程序集中查找
                    factory = DbProviderFactories.GetFactory(providerName);
                }
                catch (ArgumentException e)
                {
                    factory = null;
                }
                return(factory);
            }
Ejemplo n.º 3
0
        public static string GetParaTagByDbDialect(db_dialect dialect)
        {
            string dbTag = "";

            switch (DataAdapter.dbDialect)
            {
            case db_dialect.sqlserver:
                dbTag = "@";
                break;

            case db_dialect.oracle:
                dbTag = ":";
                break;

            case db_dialect.mysql:
                dbTag = "?";
                break;
            }
            return(dbTag);
        }
Ejemplo n.º 4
0
        public static void SetConfig(string connectionString, string dialectName)
        {
            if (string.IsNullOrEmpty(connectionString) || string.IsNullOrEmpty(dialectName))
            {
                return;
            }

            DataAdapter.constr = connectionString;
            string[] dbNames = typeof(db_dialect).GetEnumNames();
            string   dn      = dialectName.ToLower();
            Array    arr     = typeof(db_dialect).GetEnumValues();
            int      n       = 0;

            foreach (var item in dbNames)
            {
                if (item.ToLower().Equals(dn))
                {
                    dbDialect = (db_dialect)arr.GetValue(n);
                    break;
                }
                n++;
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// 获取指定数据库类型对应的程序集名称
 /// </summary>
 /// <param name="providerType">数据库类型枚举</param>
 /// <returns></returns>
 public static string GetProviderInvariantName(db_dialect providerType)
 {
     return(providerInvariantNames[providerType]);
 }