/// <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]); }
/// <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); }
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); }
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++; } }
/// <summary> /// 获取指定数据库类型对应的程序集名称 /// </summary> /// <param name="providerType">数据库类型枚举</param> /// <returns></returns> public static string GetProviderInvariantName(db_dialect providerType) { return(providerInvariantNames[providerType]); }