/// <summary> /// 根据数据库提供者和连接字符串创建数据库对象 /// </summary> /// <param name="connectionString">数据库连接字符串</param> /// <param name="dbProvider">数据库提供者</param> /// <exception cref="DatabaseNotSupportedException">指定数据库不被支持</exception> /// <returns>数据库对象</returns> public static AbstractDatabase CreateDatabase(DbProviderFactory dbProvider, String connectionString) { DatabaseType dbType = DatabaseTypeHelper.InternalGetDatabaseType(dbProvider, connectionString); switch (dbType) { case DatabaseType.Access: return(new AccessDatabase(dbProvider, connectionString)); case DatabaseType.MySQL: return(new MySQLDatabase(dbProvider, connectionString)); case DatabaseType.Oracle: return(new OracleDatabase(dbProvider, connectionString)); case DatabaseType.SQLite: return(new SQLiteDatabase(dbProvider, connectionString)); case DatabaseType.SqlServer: return(new SqlServerDatabase(dbProvider, connectionString)); case DatabaseType.SqlServerCe: return(new SqlServerCeDatabase(dbProvider, connectionString)); default: throw new DatabaseNotSupportedException("This database is not supported!"); } }
/// <summary> /// 初始化数据库类 /// </summary> /// <param name="connectionString">数据库连接字符串</param> /// <param name="dbProvider">数据库提供者</param> internal Database(String connectionString, DbProviderFactory dbProvider) { this._connectionString = connectionString; this._dbProvider = dbProvider; this._dbtype = DatabaseTypeHelper.InternalGetDatabaseType(this._connectionString, this._dbProvider); if (this._dbtype == DatabaseType.Unknown) { throw new DatabaseNotSupportException("This database is not supported!"); } }