/// <summary> /// Renvoie une chaine de connexion /// </summary> /// <param name="mars">Indique si la connexion doit accepter les jeux de résultats actifs multiples (Multiple Active Result Set)</param> /// <exception cref="ArgumentException"></exception> /// <exception cref="InvalidOperationException"></exception> /// <returns>une connexion ouverte</returns> public SqlConnection GetOpenConnection(string customConnectionString, bool mars) { if (!mars) { return(GetOpenConnection(customConnectionString)); } var scsb = factory.CreateConnectionStringBuilder(); try { scsb.ConnectionString = string.IsNullOrWhiteSpace(customConnectionString) ? GetConnectionString() : customConnectionString; ((dynamic)scsb).MultipleActiveResultSets = true; } catch (Exception ex) { throw new ArgumentException("Creation connexion failed", ex); } var conn = (SqlConnection)factory.CreateConnection(); conn.ConnectionString = scsb.ConnectionString; try { conn.Open(); return(conn); } catch (Exception ex2) { throw new InvalidOperationException("Opening connexion (Multiple Active Result Set) Fail", ex2); } }