コード例 #1
0
        /// <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);
            }
        }